Can tree based models work well with sparse features? Why?我自己没有什么思路,还请老师和同学们帮忙,谢谢!
你可以参考这个问题下的讨论:feature如果是high cardinality或者highly skewed怎么处理? - #8,来自 miao.wang
sparse feature的特点是,这一列feature里面大部分数字都是相同的取值(e.g. 0)。如果sparse features占了你model features的绝大多数,那么当你用它们构造tree-based model的时候,这个模型会退化成类似LinkedList那种只向单边生长的情况,即每一个label的学习都只能使用很少一部分feature,导致预测效果很差
我在工作上也遇到这个问题,当有很多cat features而且每个有很多个categories的时候,如果one hot了,tree based学出来总是会偏向所有真正continuous的feature,我觉得是因为one hot sparse matrix的问题。这个RF model不是我做的【我们team】但应该很快要参与调整,所以现在这个想法还只是我的猜想,行不行要等我试过之后再说:
参考Neural networks中对cat features做embedding的思路,如果引用categorical / entity embedding做preprocessing,等于不做One hot,而是在原有series里randomly assign numbers to represent category,比如red, blue, green 变成3, 7, 2,初始化什么值不太重要【我觉得只要能和其他continuous features一起做Normalization /scaling,应该就什么值不太重要】。这样的话RF feature importance就不会总是把原来的continuous放在最前面。
如果有同学能跟我探讨这个idea,也很欢迎。