Lightgbm可以直接支持category特征的处理,在用pandas结构使用LGB时可以指定哪一列是类别型数据,省去one-hot的步骤。如果类别过多,如商品ID,在one-hot处理后数据会变得过于稀疏,大大增加了训练集的大小,浪费计算资源。
而LGB则会采用一种直方图式的方法去处理,max bin的默认值是256,对于category类型的feature,则是每一种取值放入一个bin,且当取值的个数大于max bin数时,会忽略那些很少出现的category值。在求split时,对于category类型的feature,算的是按是否属于某个category值划分的gain,它的实际效果就是类似one-hot的编码方法。
参考:https://www.jianshu.com/p/d07f0b0726da