python – 首先做什么:功能选择或模型参数设置?

这更像是一个“理论”的问题.我正在使用scikit学习软件包执行一些NLP任务. Sklearn提供许多方法来执行功能选择和模型参数的设置.我想知道我应该先做什么

如果我使用univariate feature selection,很明显,我应该首先进行特征选择,然后使用所选的特征,然后调整估计器的参数.

但是如果要使用recursive feature elimination?我应该首先使用所有原始功能设置grid search的参数,然后执行功能选择?或者我应该首先选择功能(使用估计器的默认参数),然后使用所选功能设置参数?

提前感谢您能给我的任何帮助.

编辑

我在here中也有同样的问题.那时候,没有一个解决办法.有人知道现在存在吗?

最佳答案
就个人而言,我认为RFE在大多数情况下是过度的,太贵了.如果要在线性模型上进行特征选择,请使用单变量特征选择,例如使用chi2测试或具有网格搜索正则化参数(通常在sklearn模型中通常称为C或α)的L1或L1 L2正则化模型.

对于大量样本的高度非线性问题,您应该尝试RandomForestClassifier,ExtraTreesClassifier或GBRT模型和网格搜索参数选择(可能使用OOB分数估算),并使用compute_importances开关来查找重要性的功能排名,并将其用于特征选择.

对于很少的样本的非线性问题我不认为有一个解决方案.你一定在做神经科学:)

转载注明原文:python – 首先做什么:功能选择或模型参数设置? - 代码日志