数据标准化(规范化)处理是数据挖掘的基础工作,不同的评价指标往往有不同的维度和维度单位,这种情况会影响数据分析的结果。 为了消除指标之间维度的影响,需要进行数据标准化处理以解决数据指标之间的可比性。 原始数据经数据标准化处理后,各项指标在同一位,适合综合比较评价。 有三种常见的规范化方法:
最小最大标准化(最小最大标准化) )。
也称为方差归一化,对原始数据进行线性变换,并将结果值映射到[ 0,1 ]之间。 转换函数如下:
这里,max是样本数据的最大值,min是样本数据的最小值。 这个方法有缺点。 如果有新数据进入,可能会导致最大和最小的变化,需要重新定义。
最小最大标准化的python代码如下:
import numpy as np
arr=NP.as array ([ 0,10,50,80,100 ]
for x in arr:
x=float(x-NP.min(arr )NP.max ) arr )-NP.min (arr ) )
打印x
# output
# 0.0
# 0.1
# 0.5
# 0.8
# 1.0
该方法的目的如下。
1、对于方差非常小属性可以提高稳定性
2、用稀疏矩阵保持0的条目。
然后将数据缩小到0-1之间,并使用MinMaxScaler函数
来自sk learn导入预处理
import numpy as np
x=NP.Array([1.-1.2.],
[ 2.0 .0.],
[ 0.1 .-1.]] )
min _ max _ scaler=preprocessing.minmax scaler (
x _ minmax=min _ max _ scaler.fit _ transform (x )
最终输出:
array ([ 0.5,0 .1. ],
[ 1.0.5,0.3333333 ],
[ 0.1 .0.] )
测试用例:
注:所有这些转换都是针对列处理的。
当然,也可以在构建类对象时直接指定最大最小值范围: feature_range=(min,max )。 在这种情况下,适用的公式如下:
x_STD=(x-x.min ) axis=0)x.max ) axis=0)-x.min ) axis=0) )
x_minmax=x_STD/(x.max(axis=0)-x.min (axis=0) ) x.min (axis=0) )
Z-score标准化方法
也称为平均值归一化(mean normaliztion ),给出原始数据的平均值(mean )和标准偏差)进行数据的标准化。 经过处理的数据符合标准正态分布,平均值为0,标准差为1。 转换函数:
其中是所有样本数据的平均值,是所有样本数据的标准差。
import numpy as np
arr=NP.as array ([ 0,10,50,80,100 ]
for x in arr:
x=浮动(x-arr.mean ()/arr.std () ) ) ) ) ) )。
打印x
# output
# -1.24101045599
# -0.982466610991
# 0.0517087689995
# 0.827340303992
# 1.34442799399
希望以上是正文的全部内容,对大家的学习有帮助。 另外,请大家支持。