我的基本模型是一个具有65个特征的logistic回归分类器。
现在,我从这65个特性中推断出所有可能的多项式特性,然后对前100个特性进行SelectKBest剪枝(使用chi2标准)。当我将此与我的基本模型进行比较时,我发现精确度和召回率都有相当大的下降。
我的问题是,为什么selectKBest在任何情况下都会降低性能?如果外推多项式特征没有用,那么它应该已经选择了原始的65个特征,从而给了我与基本模型相同或更好的性能。
我无法理解selectKBest特性的剪裁如何会损害我的性能?
发布于 2017-06-23 17:09:07
chi2准则不是魔术,多项式特征对于chi2来说可能特别难得到正确,因为chi2特征选择是通过消除它们之间高度线性依赖的特征来实现的。
更新:
假设我们有特性x和y;x=2y。多项式展开式为x,y,xy,x^2和y^2。如果用x=2y代替,则得到2y,y,2y^2,4y^2和y^2。
在chi2选择之后,应该留下y和y^2这样的东西,因为这是唯一的线性独立特征。依赖于数据和分类器,新的多项式特征y^2可以使结果更糟或更好,没有任何性能保证。
正如您所看到的,即使在这个简单的例子中,chi2也不支持选择原始的y特性,它也保留了y^2。
在现实世界中,在特征选择过程中会出现权衡。例如,如果有与y相关的特性z,但不是完美的(即它提供了附加信息,但不多),那么chi2测试很可能会消除z,而不是y^2,因为y^2对y没有线性依赖,而z有。在这种情况下,保持z更好,因为z提供了其他信息,不像y^2。这是chi2测试如何消除有用的特性并保持冗余特性的一个例子。
https://stackoverflow.com/questions/44726040
复制相似问题