中心化/标准化/scale()函数
中心化
中心化(Zero-centered或者Mean-subtraction):$$数据 - 数据的均值$$; 反映在R的数据框中:$$列元素 - 该列元素均值$$
经过中心化的元素,均值为0
标准化
标准化(Standardization或Normalization):$$(数据 - 数据的均值)/ 数据的标准差$$; 反映在数据框中:$$(列元素 - 该列元素均值)/ 该列元素标准差$$
经过标准化的元素,均值为0, 方差为1,服从标准正态分布。 不同尺度的特征对结果的影响程度是不同的,标准化可以使得不同的特征具有相同的尺度,消除特征之间的差异性。 当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。
scale()函数
R语言中可以使用scale()函数对数据进行中心化和标准化:
scale(x, center = TRUE, scale = TRUE)
用途: 对列数据进行中心化或者标准化
参数:
- x: a numeric matrix(like object). 数字型矩阵或者类似矩阵的对象(例如:数据框)
- center:either a logical value or a numeric vector of length equal to the number of columns of x.
- 如果center = TRUE,则数据减去均值(忽略NA);
- 如果center = FALSE,则不做减法
- 如果center是一个向量,且向量长度与矩阵的列向量长度相同,则$$矩阵列元素 - 对应位置的center向量的列元素$$
- scale:either a logical value or a numeric vector of length equal to the number of columns of x.
- 如果scale = TRUE以及center = TRUE,则$$列元素/标准差$$;
- 如果scale = FALSE,则不做任何除法
- 如果scale是一个向量,且向量长度与矩阵的列向量长度相同,则$$矩阵列元素/对应位置的scale向量的列元素$$
具体用法:
- 中心化:
scale(x,center = TRUE,scale = FALSE)
- 标准化:
scale(x, center = TRUE, scale = TRUE)
- 其他:$$x / root-mean-square$$,其中: $$root-mean-square = sqrt(sum(x^2)/(n-1))$$
scale(x,center = FALSE,scale = TRUE):