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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM