R Tip:資料集劃分為訓練集和測試集?
問題背景:我們構建資料模型的時候,需要把資料集劃分為訓練集和測試集,訓練集用來訓練模型,測試集用來測試模型的泛化能力。本文總結R語言如何把資料集劃分為訓練集和測試集?
解決方案
結合實際工作,羅列4中解決方案。
1 使用smaple()函式
程式碼片段如下:
data <- read.csv("raw_data/data.csv") set.seed(20180808) index <-sort(sample(nrow(data), nrow(data)*.7)) train <- data[index,] test <-data[-index,]
2 使用caret包
程式碼片段如下:
library(caret) data <- read.csv("raw_data/data.csv") set.seed(20180808) index <- createDataPartition( data$y, p = 0.7, list = FALSE ) train <- data[index, ] test <- data[-index, ]
3 使用caTools包
程式碼片段如下:
library(caTools) data <- read.csv("raw_data/data.csv") set.seed(20180808) index<-sample.split(data$y,SplitRatio = 0.3) train <- subset(data, index == TRUE) test <- subset(data, index == FALSE)
4 使用scorecard包
程式碼片段如下:
library(scorecard) data <- read.csv("raw_data/data.csv") set.seed(20180808) data_list <- split_df(data, ratio = 0.7) train <- data_list$train test <- data_list$test
參考資料
1 https://topepo.github.io/caret/data-splitting.html 2 http://shujuren.org/article/637.html
版權宣告:作者保留權利,嚴禁修改,轉載請註明原文連結。
資料人網是資料人學習、交流和分享的平臺http://shujuren.org 。專注於從資料中學習到有用知識。 平臺的理念:人人投稿,知識共享;人人分析,洞見驅動;智慧聚合,普惠人人。 您在資料人網平臺,可以1)學習資料知識;2)建立資料部落格;3)認識資料朋友;4)尋找資料工作;5)找到其它與資料相關的乾貨。 我們努力堅持做原創,聚合和分享優質的省時的資料知識! 我們都是資料人,資料是有價值的,堅定不移地實現從資料到商業價值的轉換!