笔者寄语:规范化主要是因为数据受着单位的影响较大,需要进行量纲化。大致有:最小-最大规范化、均值标准化、小数定标规范化
1、最小-最大规范化
也叫离差标准化,是对原始数据的线性变换,将数据映射到[0,1]之间,与功效系数法相同。
#最小-最大规范化
b1=(data[,1]-min(data[,1]))/(max(data[,1])-min(data[,1]))
b2=(data[,2]-min(data[,2]))/(max(data[,2])-min(data[,2]))
b3=(data[,3]-min(data[,3]))/(max(data[,3])-min(data[,3]))
b4=(data[,4]-min(data[,4]))/(max(data[,4])-min(data[,4]))
data_scatter=cbind(b1,b2,b3,b4)
2、均值标准化法
标准差标准化、零均值规范化等方法,经过处理的数据均值为0,标准差为1。公式为:
x*=(x-均值)/标准差
因为均值受离群值影响较大,也可以将均值替换成变量的中位数。
#零-均值规范化
data_zscore=scale(data)
3、小数定标规范化
移动变量的小数点位置来将变量映射到[-1,1]
#小数定标规范化
i1=ceiling(log(max(abs(data[,1])),10))#小数定标的指数
c1=data[,1]/10^i1
i2=ceiling(log(max(abs(data[,2])),10))
c2=data[,2]/10^i2