登录
首页精彩阅读基于R语言的数据标准化处理脚本
基于R语言的数据标准化处理脚本
2018-06-10
收藏

基于R语言数据标准化处理脚本

数据标准化(Normalization)
将数据按比例缩放,使之落入一个小的特定区间。去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。
数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。
数据无量纲化处理主要解决数据的可比性。数据标准化的方法有很多种,常用的有“最小—最大标准化”、“Z-score标准化”和“按小数定标标准化”等。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。
min-max标准化(Min-max normalization)
也叫离差标准化,是对原始数据的线性变换,使结果落在[0,1]区间,转换函数如下:
正向指标:(x-min)/(max-min)
负向指标:(max-x)/(max-min)
其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。
R语言实现
# 标准化处理
min.max.norm <- function(x){
  ((x-min(x))/(max(x)-min(x)))
}   #正向指标

max.min.norm <- function(x){
  ((max(x)-x)/(max(x)-min(x)))
}   #负向指标


data_1 <- apply(data[,-c(3,4)],2,min.max.norm)  #正向指标处理
data_2 <- apply(data[,c(3,4)],2,max.min.norm)   #负向指标处理
#注意array只能用在二维及以上

data_t <- cbind(data_1,data_2)

数据分析咨询请扫描二维码

客服在线
立即咨询