最近在公司里面做相关内容,发现许多理论并不坚固。归一化就是一个。
1. 只能在训练集当中,然后应用到测试集上面。
不能两部分一起归一化, 也不能各自用自己数据归一化。 因为我们默认两部分都有足够的数据,并且数据分布相同。当然最重要的是,测试集是不可以偷看的,更不要说计算这些统计数据。sklearn.preprocessing.StandardScaler方便把训练集上面的操作和数据对测试集也做同样操作,很方便。知乎上有一个很好的回答。https://www.zhihu.com/question/60490799
2. 分类
其实最常用的就两类:
1. z-score标准化(或零-均值标准化)
- y=(x-X的平均值)/X的标准差=(x-mean)/std
- 比较常用, 优点在于可以排除异常点的影响
2.min-max
根据博客http://www.cnblogs.com/hudongni1/articles/5499307.html
- y=( (x-MinValue) / (MaxValue-MinValue) )(new_MaxValue-new_MinValue)+new_minValue
- 使用这种方法的目的包括:对于方差非常小的属性可以增强其稳定性; 维持稀疏矩阵中为0的条目。
3.使用场景
涉及距离度量的多需要归一化,比如svm和knn