切分数据集就是将数据分红函数
训练集(Test Data):用户构建模型,测试
验证集(Valiadation Data):可选,用于辅助模型构建,能够重复使用code
测试集(Test Data):用于检验模型构建,此数据只模型检验时使用,用于评估模型的准确率。绝对不容许用于模型构建过程,否者会致使过分拟合对象
(1)推荐:caret包中的createDataPartition()函数ci
library(caret) InTrain <- createDataPartition(y=wdbc$diagnosis,p=0.8,list = F) train_wdbc <- wdbc[InTrain,] #训练集 test_wdbc <- wdbc[-InTrain,] #测试集 prob.table(table(train_wdbc$y) #每类在训练集合中的占比 prob.table(table(test_wdbc$y) #每类在测试集合中的占比
y:要拆分的对象it
p:训练集的占比数据挖掘
list:T表示分类的结果为列表io
time:要建立分区的数量,默认为1table
使用createDataPartition的好处在于,它能将低熵数据集随机抽取出咱们须要的训练集来。好比咱们的数据集共有 100 个样本点,前50 个是一类,后 50 个是一类,咱们为了让训练集里两类样本都各有一些,必然但愿从前 50 个样本点随机抽取必定比例,后 50 个里也随机抽取相应比例的样本点来组成训练集。这个手动过程由于涉及到人的主观意识,从而不能保证彻底随机化。而 createDataPartition 会自动从 y 的各个 level 随机取出等比例的数据来,组成训练集,给咱们省了不少事。test
createresample()#建立一个或多个Bootstrap样本; Createfolds()#将数据分为K组; createtimeslices()#建立交叉验证样本信息可用于时间序列数据
(2)
使用R中内置鸢尾花数据集iris进行操做
鸢尾花(iris)是数据挖掘经常使用到的一个数据集,包含150种鸢尾花的信息,
每50种取自三个鸢尾花种之一(setosa,versicolour或virginica)。
每一个花的特征用下面的5种属性描述萼片长度(Sepal.Length)、萼片宽度(Sepal.Width)、
花瓣长度(Petal.Length)、花瓣宽度(Petal.Width)、类(Species)。
#对数据分红两部分,70%训练数据,30%检测数据 sample(2,nrow(iris),replace = T,prob=c(0.7,0.3))#等价于sample(1:2, nrow(iris), replace=T,prob=c(0.7,0.3)) sample(nrow(iris),100) #从iris数据集中随机取100个数据做为样本
(3)
dim(iris) index <- sample(1:nrow(iris),100) #随机取出100行(观测) iris.train <- iris[index,] #训练集合 iris.test <- iris[-index] #测试集合