scale处理
- 归一化所有特征
- 对真是距离给出更好的度量
- 值在0,1之间
scale函数是将一组数进行处理,默认情况下是将一组数的每个数都减去这组数的平均值后再除以这组数的均方根。
- center=TRUE,默认的,是将一组数中每个数减去平均值,若为false,则不减平均值;
- scale=TRUE:默认的,是将一组数中每个数除以均方根, sqrt(sum(x^2)/(n-1))
ss<-c(1,2,3,4,5,3,2)
case 1
默认情况下:将一组数的每个数都减去这组数的平均值后再除以这组数的均方根。
> scale(ss) #
[,1]
[1,] -1.3805850
[2,] -0.6371931
[3,] 0.1061988
[4,] 0.8495908
[5,] 1.5929827
[6,] 0.1061988
[7,] -0.6371931
attr(,"scaled:center")
[1] 2.857143
attr(,"scaled:scale")
[1] 1.345185
case 2
直接减去均值,没有除以均方根:
> scale(ss,scale=FALSE)
[,1]
[1,] -1.8571429
[2,] -0.8571429
[3,] 0.1428571
[4,] 1.1428571
[5,] 2.1428571
[6,] 0.1428571
[7,] -0.8571429
attr(,"scaled:center")
[1] 2.857143
case 3
没有减去均值,直接除以均方根:
> scale(ss,center=FALSE)
[,1]
[1,] 0.2970443
[2,] 0.5940885
[3,] 0.8911328
[4,] 1.1881771
[5,] 1.4852213
[6,] 0.8911328
[7,] 0.5940885
attr(,"scaled:scale")
[1] 3.366502