对于树模型,我们不需要对数值特征进行缩放处理。
对于基于距离的模型,如KNN,线性模型,neural network,都需要对数据进行处理。
对于KNN,如果一个特征的范围很大,那么这个特征就更重要。所以特征的范围一定要选取好。
对于线性模型:
首先,没有标准化或归一化的话,梯度下降将会很慢甚至难以进行。
其次,没有标准化的话,正则项将产生不应有的效果。比如L2正则,特征越大,对应的权重w越大,而正则W**2也就越大了
因此,这些模型的数值特征都需要进行处理。
------------------------------------------------------------------------------------------------------
线性模型对于异常值很敏感:
我们可以进行异常值检测,去除异常值
此外,还可以进行rank transformation,也可以减轻outlier对线性模型的影响
这里注意,应将train data 和test data合并再rank。或者对train data做rank并记录map,再对test data做rank
---------------------------------------------------------------------------------------------
此外,还可以进行下面两个变换,对线性模型尤其是神经网络效果很好:
将会把很大的值降低
-----------------------------------------------------------------------------------------
我们还可以对数据进行不同的特征变换,然后将这几份数据concat起来作为训练数据
或者 对不同的模型使用不同的特征变换,然后aggregation
----------------------------------------------------------------------------------------
对特征进行加减乘除的组合,不仅对线性模型有用,
对树模型也有用: 用更少的树产生更robust的模型
----------------------------------------------------------------------------------------
小数部分也可以作为特征:
之前自己做的比赛里就出现过