農場申請貸款.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
最小-最大規范化:對原始數據的線性變換,將數值映射到[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
零-均值規范化:標准差規范化,經過處理的數據的均值位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
小數定標規范化:最小-最大規范化保持原有數據之間的聯系

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