[Feature Engineering]关于Label Encoding带来的顺序问题

在平时看到很多有关feature engineering的blog里都提到Label Encoding会带来potential ordinality即使我们的categorical feature里面是没有这一属性的,直观上是完全可以理解,因为encode之后会从categorical变为[1,2,3,4],那么对应4的类别就会变成其中highest rank的类别。但是这样的影响我们能具体到比如loss function中得到吗?或者说这个ordinality的影响到底体现在哪一部分呢?(这里针对于比较需要做feature enginnering的模型来说,比如linear regression,logistic regression,而不考虑某些decision tree和random forest。)

类似于我们知道对于linear regression来说我们要做feature normalization是因为loss function在gradient descent中会乘上一个x本身,那么就容易理解因为x自身的大小对下降的方向是有影响的,所以做了feature normalization will be better。上述ordinality的影响是不是也可以通过同样的方式看出来呢?

以linear regression举例,它的loss function是基于距离来定义的,即Y_obs与Y_predict之间的error。当然这个error可以用不同的方法定义,比如squared error, absolute error等。如果我们把categorical feature中引入ordinality,那么就相当于破坏/改变了原有的距离关系,这样会导致loss function中衡量的distance与实际数据中的distance关系不符。理解了这个原因,也可以帮助我们理解为什么tree-based model不需要feature encoding:因为它们的loss function并非是根据距离关系来定义的。

老师我想和你确认一下,如果是regression tree的话,排除课上提到的由于一些implementation方法的不同而采取的分组方法会受到ordinality的影响,由于我们常用MSE来作为分叉时的metric, 而MSE又是根据距离来定义的,那么这个时候loss function本身也是会受到ordinality带来的影响的是吗?

恩是的. regression tree比较特殊,它确实也会受到ordinality的影响。