带有交叉验证(RFEVC)的递归特征消除(RFEVC)在多层perceptron估计器(以及其他几个分类器)上不起作用。
我希望在许多执行交叉验证的分类器中使用功能选择来验证其功能选择。有任何建议吗?
有一个功能选择独立于结构化数据的模型选择,它称为排列重要性。在这里和其他地方都很好地解释了它。您应该看看它。它目前正在Sklearn中实施。
MLP没有当前的实现,但是可以很容易地使用类似的事情来完成:
:def permutation_importances(rf, X_train, y_train, metric):
baseline = metric(rf, X_train, y_train)
imp = []
for col in X_train.columns:
save = X_train[col].copy()
X_train[col] = np.random.permutation(X_train[col])
m = metric(rf, X_train, y_train)
X_train[col] = save
imp.append(baseline - m)
return np.array(imp)
请注意,此处训练集用于计算功能重要性,但是您可以选择使用测试集,如此处讨论。