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

Python016

基于R语言的数据标准化处理脚本,第1张

基于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)

先选取一个随机数发生器。

随机数组合的方法:选取一个随机数发生器,生成1000个随机数,令这100个随机数生成数组并命名为t。同时令n=1,命名最终需要的随机数数组为x,选取第二个发生器,生成一个随机数j,且满足1而随机数组合的难点在于,步骤2步骤3的时候随机数种子的选取比较难。这里用的是第一个随机数发生器生成的随机数作为种子,也自己定义其他的种子。