Sklearn MLP 特征选择

Posted

技术标签:

【中文标题】Sklearn MLP 特征选择【英文标题】:Sklearn MLP Feature Selection 【发布时间】:2017-04-26 06:07:46 【问题描述】:

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

我希望在许多执行交叉验证的分类器中使用特征选择来验证其特征选择。有什么建议吗?

【问题讨论】:

注意:另一种方法是对某些分类器使用一种特征选择方法,而对另一些分类器使用不同的特征选择方法,但这不是很优雅。 这仍然是真的吗? 老实说,我不确定。 :// 【参考方案1】:

结构化数据有一个独立于模型选择的特征选择,称为置换重要性。 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 所述。

【讨论】:

以上是关于Sklearn MLP 特征选择的主要内容,如果未能解决你的问题,请参考以下文章

sklearn 是不是支持动态数据的特征选择?

sklearn特征选择和分类模型

sklearn 特征选择

如何在 sklearn 管道中获取通过特征消除选择的特征名称?

通过 Sklearn 的 RFECV(带有交叉验证的递归特征消除)选择特定数量的特征

机器学习sklearn(十七): 特征工程特征选择卡方选择卡方检验