有没有办法使用带有 scikit-learn 的非线性模型的递归特征选择?

Posted

技术标签:

【中文标题】有没有办法使用带有 scikit-learn 的非线性模型的递归特征选择?【英文标题】:Is there a way to use recursive feature selection with non linear models with scikit-learn? 【发布时间】:2014-04-10 22:36:41 【问题描述】:

我正在尝试将 SVR 与 rbf 内核(显然)一起用于回归问题。我的数据集有大约 300 个特征。我想选择更多相关的功能并使用类似 matlab 的sequentialfs 函数,它会尝试每一种组合(或者无论如何从几个变量开始并在途中添加变量,或者相反,向后退,比如 RFE 或 RFECV scikit))。

现在,如前所述,对于 python,有 RFE,但我不能将它与非线性估计器一起使用。有什么我不知道的可以让我将 RFE 与非线性估计器一起使用吗?我想编写这样的算法并不难,但如果已经有一些东西可以完成这项工作,那肯定会更好。

一如既往地感谢你;)

【问题讨论】:

【参考方案1】:

RFE 必须有某种方法来确定特征重要性,而 RBF 内核 SVM 不提供这种方法。快速浏览original algorithm,我的印象是内核支持向量机的实现必须集成到支持向量机学习算法中。

逐步(向前或向后)特征选择很容易实现,但不能作为 scikit-learn 中的预构建估计器使用。

【讨论】:

再次感谢 larsmans。当您说“快速浏览原始算法时,我的印象是内核 SVM 的实现必须集成到 SVM 学习算法中”,您是什么意思。我没有得到那部分。 @foebu:你读过这篇论文吗? 6.3 节讨论了内核化的情况。 RFE 算法专门用于处理这个问题,即它变成了一种了解 SVM 工作原理的不同算法。

以上是关于有没有办法使用带有 scikit-learn 的非线性模型的递归特征选择?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Python 中为具有多个分类的随机森林制作部分依赖图(使用 scikit-learn)?

是否可以在 Python(Scikit-Learn)中对 KMeans 中的非浮点数据进行聚类?

PresentViewController 一个带有 UINavigationController 的非全屏 UIViewController

通过从 pandas 和 scikit-learn 中的非缺失值估计方程来估算缺失值

带有 SVM 回归的 Scikit-learn 网格搜索

有没有办法访问 C++ Boost rtree 中的非叶节点