经过标准化处理后,原始数据转化为无量纲化指标测评值,各指标值处于同一数量级别,可进行综合测评分析。
如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。
如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
x = (x - min)/(max - min)
通过对数据的每一个维度的值进行重新调节,使得最终的数据向量落在 [0,1]区间内
应用场景:
这种归一化方法比较适用在数值比较集中的情况。但是,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定,实际使用中可以用经验常量值来替代max和min。而且当有新数据加入时,可能导致max和min的变化,需要重新定义。
在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用该方法。
在处理自然图像时,我们获得的像素值在 [0,255] 区间中,常用的处理是将这些像素值除以 255,使它们缩放到 [0,1]中.
x =(x - u)/σ u是均值 σ是标准差
处理后的数据符合标准正态分布。该标准化方法广泛用于机器学习算法(SVM,LR, NN)
应用场景
在分类、聚类,算法中需要使用距离来度量相似性的时候、或者使用PCA(协方差分析)技术进行降维的时候,Z-score 标准化表现更好。
经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线。
(1)log函数转化到[0,1]。数据要落到[0,1]区间,要求原数据大于等于1
(2)atan反正切函数。要想数据落到[0,1],数据应该大于等于0,小于0的数据被映射到[-1,0]
(3)logistic函数 | sigmoid函数:该函数的曲线是S型的,值域在[0,1]范围
KNN,kmeans等对特征尺度敏感,使用距离(如欧几里得距离)来判定样本之间的相似度的分类和聚类问题,都要进行数据规范化。
逻辑回归是不是用正则取决于实际情况。
如果你不用正则,那么,标准化并不是必须的,如果你用正则,那么标准化是**必须的。**为什么呢?因为不用正则时,我们的损失函数只是仅仅在度量预测与真实的差距,加上正则后,我们的损失函数除了要度量上面的差距外,还要度量参数值是否足够小。而参数值的大小程度或者说大小的级别是与特征的数值范围相关的。
上面这些问题使用梯度优化来获得最优解。比如支持向量机使用梯度优化得到将样本数据分开的最优超平面。
总之,涉及到距离、协方差(比如PCA本质涉及协方差计算)、梯度计算的问题要进行标准化。
距离、协方差,是因为要使各特征贡献一致所以使用标准化
梯度计算,是因为如果不标准化,模型的收敛会很慢或者不会收敛到最优解。
为什么决策树不需要数据标准化?
一般来说, 机器学习都需要特征标准化, 目的是让特征之间的比较可以在同一个量纲上进行. 但是从数据构建过程来看, 决策树中的计算和比较都是单特征的.他采用算法里面没有涉及到任何和距离等有关的, 所有决策树不需要数据的标准化.
https://blog.csdn.net/luckoovy/article/details/82346223
https://blog.csdn.net/YQMind/article/details/84789655