R_Studio(贷款)数据规范化处理[最小-最大规范化、零-均值规范化、小数定标规范化]

 

 

  农场申请贷款.csv

 

 

  对“农场申请贷款.csv”中农场大小、降雨量、农场质量、农场收入进行数据规范化处理 行数[4 5 6 7]

  “农场申请贷款.csv”中存在缺失值,已对数据进行预处理 

 

setwd('D:\\data')

list.files()

#数据读取
dat=read.csv(file="农场申请贷款.csv",header=TRUE)

sub=which(is.na(dat[5]$'降雨量'))#识别缺失值所在行数
#将数据集分成完整数据和缺失数据两部分
inputfile1=dat[-sub,]    #缺失部分
inputfile2=dat[sub,]     #不缺失部分  

dat=inputfile1

#最小-最大规范化
b1=(dat[,4]-min(dat[,4]))/(max(dat[,4])-min(dat[,4]))
b2=(dat[,5]-min(dat[,5]))/(max(dat[,5])-min(dat[,5]))

b3=(dat[,6]-min(dat[,6]))/(max(dat[,6])-min(dat[,6]))
b4=(dat[,7]-min(dat[,7]))/(max(dat[,7])-min(dat[,7]))
data_scatter=cbind(b1,b2,b3,b4)
newdata=dat
for(i in 4:7){
  newdata[,i] =(dat[,i]-min(dat[,i]))/(max(dat[,i])-min(dat[,i]))
}

data_scatter=cbind(b1,b2,b3,b4)

data_scatter=cbind(b1,b2,b3,b4)   


#零-均值规范化
data_zscore=scale(data_scatter)
data_zscore

#小数定标规范化
i1=ceiling(log(max(abs(dat[,4])),10))#小数定标的指数
c1=dat[,4]/10^i1
i2=ceiling(log(max(abs(dat[,5])),10))
c2=dat[,5]/10^i2
i3=ceiling(log(max(abs(dat[,6])),10))
c3=dat[,6]/10^i3
i4=ceiling(log(max(abs(dat[,6])),10))
c4=dat[,7]/10^i4
data_dot=cbind(c1,c2,c3,c4)

#打印结果
options(digits = 4)#控制输出结果的有效位数
data;data_scatter;data_zscore;data_dot
Gary.R

 

 

  最小-最大规范化:对原始数据的线性变换,将数值映射到[0,1]

   

 

 

 

setwd('D:\\data')
list.files()
#数据读取
dat=read.csv(file="农场申请贷款.csv",header=TRUE)

sub=which(is.na(dat[5]$'降雨量'))#识别缺失值所在行数
#将数据集分成完整数据和缺失数据两部分
inputfile1=dat[-sub,]    #缺失部分
inputfile2=dat[sub,]     #不缺失部分  

dat=inputfile1  #将清洗过的数据保存回dat中
#最小-最大规范化
b1=(dat[,4]-min(dat[,4]))/(max(dat[,4])-min(dat[,4]))
b2=(dat[,5]-min(dat[,5]))/(max(dat[,5])-min(dat[,5]))
b3=(dat[,6]-min(dat[,6]))/(max(dat[,6])-min(dat[,6]))
b4=(dat[,7]-min(dat[,7]))/(max(dat[,7])-min(dat[,7]))
data_scatter=cbind(b1,b2,b3,b4)
newdata=dat
for(i in 4:7){
  newdata[,i] =(dat[,i]-min(dat[,i]))/(max(dat[,i])-min(dat[,i]))
}
data_scatter=cbind(b1,b2,b3,b4)

data_scatter
Gary.R

 

 

  零-均值规范化:标准差规范化,经过处理的数据的均值位0,标准差位1

  

 

  scale方法中的两个参数center和scale的解释:
    center和scale默认为真,即T或者TRUE
    center为真表示数据中心化(只减去均值不做其他处理)
    scale为真表示数据标准化

 

setwd('D:\\data')
list.files()
#数据读取
dat=read.csv(file="农场申请贷款.csv",header=TRUE)

sub=which(is.na(dat[5]$'降雨量'))#识别缺失值所在行数
#将数据集分成完整数据和缺失数据两部分
inputfile1=dat[-sub,]    #缺失部分
inputfile2=dat[sub,]     #不缺失部分  

dat=inputfile1  #将清洗过的数据保存回dat中
#零-均值规范化
data_zscore=scale(data_scatter)
data_zscore

data_zscore
Gary.R

 

  

   小数定标规范化:最小-最大规范化保持原有数据之间的联系

  

 

setwd('D:\\data')
list.files()
#数据读取
dat=read.csv(file="农场申请贷款.csv",header=TRUE)

sub=which(is.na(dat[5]$'降雨量'))#识别缺失值所在行数
#将数据集分成完整数据和缺失数据两部分
inputfile1=dat[-sub,]    #缺失部分
inputfile2=dat[sub,]     #不缺失部分  

dat=inputfile1  #将清洗过的数据保存回dat中
#小数定标规范化
i1=ceiling(log(max(abs(dat[,4])),10))#小数定标的指数
c1=dat[,4]/10^i1
i2=ceiling(log(max(abs(dat[,5])),10))
c2=dat[,5]/10^i2
i3=ceiling(log(max(abs(dat[,6])),10))
c3=dat[,6]/10^i3
i4=ceiling(log(max(abs(dat[,6])),10))
c4=dat[,7]/10^i4
data_dot=cbind(c1,c2,c3,c4)

data_dot
Gary.R

 

posted @ 2018-09-27 20:41  Cynical丶Gary  阅读(3240)  评论(0编辑  收藏  举报