判别分析--数据预处理(划分训练集和测试集)
作者:互联网
数据集
我们选用kknn软件包中的miete数据集进行算法演示,该数据集记录了1994年慕尼黑的住房租金标准中的一些有趣变量,比如房子的面积、是否有浴室、是否有中央供暖、是否供应热水等,这些都影响并决定着租金的高低。
1 数据概况
library(kknn)
data(miete)
head(miete)
dim(miete)
结果分析:该数据集共含有1082条样本和17个变量。
summary(miete)
各变量的含义:
按照上表所示,我们在数据集中剔除含义重复的第1、3、12这三个变量,取余下的14个变量进行处理。且其中我们选择第15个变量——按区间划分的净租金(nmkat)作为待判别变量,一是由于该变量在含义上受其他各变量的影响,为被解释变量;二是由summary0)输出结果可知,nmkat 共含有5个类等级别,标号未1,2,3,4,5即代表租金额依次增加。其相应样本量依次为219、230、210、208、215,即每一类的样本量都为200多个,分布较为均匀。
2 数据预处理
下面我们将该数据集划分出训练集和测试集为后续算法处理做准备。
为提高判别效果,我们考虑采用分层抽样的方式,且由于前面所说的待判别变量nmkat 的样本取值在5个等级中分布均匀,因此在分层抽样过程中对这5个等级抽取等量样本。具体实施程序如下:
install.packages("sampling")
library(sampling)
n<-round(2/3*nrow(miete)/5) #按照训练集占数据总量2、3的比例,计算每一等级中应抽取的样本量
n
subtrain=strata (miete, stratanames="nmkat" ,size=rep(n, 5) , method="srswor") #一nmkat变量的5个等级划分层次,进行分层抽样
head(subtrain)
#显示训练集的抽取情况,包括nmkat变量的取值,该样本在数据中的序号,被抽取到的概率,所在的层次
miete<-miete[,c(-1,-3,-12)]
datatrain<-miete[subtrain$ID_unit,]
datatest<-miete[-subtrain$ID_unit,]dim(data_train)
dim(datatrain) #训练集
dim(data_test) #测试集
head(datatest)
标签:nmkat,dim,变量,--,miete,判别分析,分层抽样,数据,预处理 来源: https://www.cnblogs.com/YY-zhang/p/15244251.html