使用交叉验证的递归特征消除(RFEVC)不适用于多层感知器估计器(以及其他几个分类器)。
我希望在许多分类器中使用功能选择,这些分类器执行交叉验证以验证其功能选择。有什么建议吗?
答案 0 :(得分:0)
对于结构化数据,有一个独立于模型选择的功能选择,称为置换重要性。 here和其他地方都有很好的解释。 您应该看看它。是currently being implemented in 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)
请注意,此处训练集用于计算功能重要性,但是您可以选择使用测试集,如here所述。