切分數據集就是將數據分紅函數
訓練集(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] #測試集合