DataCastle-Solution icon indicating copy to clipboard operation
DataCastle-Solution copied to clipboard

你好,请教案例中特征工程的一些技巧

Open winfieldcw opened this issue 7 years ago • 2 comments

1.处理过程:

2.1我们将原始数值特征进行升序排序,将得到的rank作为新的特征。比如特征是15,10,2,100 ,排序后的新特征就是3,2,1,4。 2.2将原始特征等量划分到10个区间作为离散特征,每个新特征的取值就是1-10(可以等量或者等值,我们选择等量划分) 2.3计算每个样本离散特征1-10的数量,生成10个新的特征 2.4将特征进行两两交叉x*y x^2+y^2 1/x+1/y 等等,在生成特征的同时计算与标签列的皮尔逊相关系数保留topK特征(我们保留了1500个) 2.5类别特征进行one-hot处理 (哑变量) 2.6使用xgboost输出的特征重要性对特征进行选择

2.问题

(1)2.1和2.2进行了rank和离散化,是否考虑特征之间的冗余问题?假如原始特征a1,离散化的特征a2,排序后的特征a3,如果a1,a2,a3,在2.6中重要性排在前3位,是否需要考虑只保留其中一个? (2)案例中是否有考虑特征之间的冗余情况,即因子特征,如由a,b特征产生了c特征,这个时候a,b特征是否需要丢弃掉,如2.4步 (3)xgboost是否会自己忽略表现差的特征,假如有1500维的特征,后面的1000维重要性很低,模型是否会忽略,即一般是将1500维仍进去跑,还是只取前500维? (4)xgboost最终的特征数保留在什么数量级比较合适,如100维,还是1000维等(即2.6中根据重要性选择,一般保留多少维的特征)

谢谢

winfieldcw avatar Aug 30 '16 08:08 winfieldcw

1, 2. 特征之间可能会有冗余,可以考虑把几种特征放在一起训练,再刷选一遍。我们当时怎么做的我不太记得了。 3. 判别性差的特征,在训练过程中是有可能不被选中的。训练完成后,模型可以输出feature score,这里面没出现的特征,说明在整个迭代过程中没被选中过。 4. 具体保留多少要看具体数据,可以通过交叉验证去确定。

wepe avatar Aug 30 '16 09:08 wepe

好的,谢谢

winfieldcw avatar Aug 31 '16 07:08 winfieldcw