Sklearn MLP特征选择

时间:2016-12-11 03:54:54

标签: scikit-learn neural-network classification feature-selection

使用交叉验证的递归特征消除(RFEVC)不适用于多层感知器估计器(以及其他几个分类器)。

我希望在许多分类器中使用功能选择,这些分类器执行交叉验证以验证其功能选择。有什么建议吗?

1 个答案:

答案 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所述。