最大最小值归一化处理_数据标准化的归一化计算公式

(23) 2024-09-13 17:01:01

 最大值最小值归一化

最大最小值归一化处理_数据标准化的归一化计算公式 (https://mushiming.com/)  第1张

Xjmin是Xj所在列的最小值

Xjmax是Xj所在列的最大值

问题:

能做到归一化(0-1zhi之间),但是一旦数据中有一个离群值(特别大的值)就会出现这个离群值做完归一化后特别趋近于1,而其他值特别趋近于0。

异常值特别大的话那么最大值和最小值差距比较大。所以一般不会使用最大最小值归一化。

标准归一化

经过处理的数据符合标准正态分布即均值为0,标准差为1的标准正态分布。

Xmean:X所在列的均值

Standard Deviation:X所在列的标准差

最大最小值归一化处理_数据标准化的归一化计算公式 (https://mushiming.com/)  第2张

标准差的公式会考虑到所有样本数据,所以受离群值影响会小一些。在样本足够多的情况下比较稳定。

但是如果使用标准归一化不一定会把数据缩放到0-1之间。

 标准差是方差的开根号:最大最小值归一化处理_数据标准化的归一化计算公式 (https://mushiming.com/)  第3张

方差为0说明所有的特征都是平均值

方差很大说明所有特征都比较离散

如果样本都是正的,那么所有的的参数θ在调整的时候可能都朝着一个方向调整。

标准归一化可以是样本缩放的同时,也可以使样本有正有负,这样就可以让不同的

θ朝着不同方向调整直接到达最优解,减少迭代次数。

最大最小值归一化处理_数据标准化的归一化计算公式 (https://mushiming.com/)  第4张

在用代码使用归一化的时候,测试集和训练集使用同一个scaler对象(持久化)训练,不过前提是测试集和训练集以及未来的新数据集是同分布的。

#基于sklearn代码实现最大最小值归一化

from sklearn.preprocessing import MinMaxScaler

# 数据归一化 def Maxminscale(): # feature_range指定2-3之间的范围 mm = MinMaxScaler(feature_range=(2, 3)) data = mm.fit_transform([[89, 79, 1, 14], [78, 111, 33, 754], [82, 234, 11, 23]]) print(data)

结果缩放到2-3之间最大最小值归一化处理_数据标准化的归一化计算公式 (https://mushiming.com/)  第5张

#基于sklearn代码实现标准归一化

from sklearn.preprocessing import StandardScaler

# 标准归一化 def standscaler(): ss = StandardScaler() data = ss.fit_transform([[89, 79, 1, 14], [78, 111, 33, 754], [82, 234, 11, 23]]) print(data)

标准差缩放后的结果

最大最小值归一化处理_数据标准化的归一化计算公式 (https://mushiming.com/)  第6张

THE END

发表回复