R語言caret包的學習(四)--建立模型及驗證


 本文介紹caret包中的建立模型及驗證的過程。主要涉及的函數有train(),predict(),confusionMatrix(),以及pROC包中的畫roc圖的相關函數。

建立模型

在進行建模時,需對模型的參數進行優化,在caret包中其主要函數命令是train。

train(x, y, method = "rf", preProcess = NULL, ...,
  weights = NULL, metric = ifelse(is.factor(y), "Accuracy", "RMSE"),
  maximize = ifelse(metric %in% c("RMSE", "logLoss", "MAE"), FALSE, TRUE),
  trControl = trainControl(), tuneGrid = NULL,
  tuneLength = ifelse(trControl$method == "none", 1, 3))
  • x  行為樣本,列為特征的矩陣或數據框。列必須有名字
  • y  每個樣本的結果,數值或因子型
  • method  指定具體的模型形式,支持大量訓練模型,可在此查詢:點擊
  • preProcess  代表自變量預處理方法的字符向量。默認為空,可以是 "BoxCox", "YeoJohnson", "expoTrans", "center", "scale", "range", "knnImpute", "bagImpute", "medianImpute", "pca", "ica" and "spatialSign".
  • weights  加權的數值向量。僅作用於允許加權的模型
  • metric  指定將使用什么匯總度量來選擇最優模型。默認情況下,"RMSE" and "Rsquared" for regression and "Accuracy" and "Kappa" for classification
  • maximize  邏輯值,metric是否最大化
  • trControl  定義函數運行參數的列表。具體見下
  • tuneGrid  可能的調整值的數據框,列名與調整參數一致
  • tuneLength  調整參數網格中的粒度數量,默認時每個調整參數的level的數量

下面來具體介紹一下trainControl函數

trainControl(method = "boot", number = ifelse(grepl("cv", method), 10, 25),
  repeats = ifelse(grepl("[d_]cv$", method), 1, NA), p = 0.75,
  search = "grid", initialWindow = NULL, horizon = 1,
  fixedWindow = TRUE, skip = 0, verboseIter = FALSE, returnData = TRUE,
  returnResamp = "final",.....)
  • method  重抽樣方法:"boot", "boot632", "optimism_boot", "boot_all", "cv", "repeatedcv", "LOOCV", "LGOCV" (for repeated training/test splits), "none" (only fits one model to the entire training set), "oob" (only for random forest, bagged trees, bagged earth, bagged flexible discriminant analysis, or conditional tree forest models), timeslice, "adaptive_cv", "adaptive_boot" or "adaptive_LGOCV"
  • number  folds的數量或重抽樣的迭代次數
  • repeats  僅作用於k折交叉驗證:代表要計算的完整折疊集的數量
  • p  僅作用於分組交叉驗證:代表訓練集的百分比
  • search  Either "grid" or "random",表示如何確定調整參數網格

用kernlab包中的spam數據來進行實驗

 

模型預測

當模型的參數全部訓練完畢后,就要將測試數據帶入模型中進行驗證預測了,此時主要用到predict函數
 predict (object, ...)
  • object  模型對象
  • ...  影響生成預測的其他參數

(篇幅有限,僅為部分預測結果)

模型評價

想知道模型預測的准確率如何呢?這個時候就要用到錯誤分類矩陣了,將模型預測的值和真實的值進行比較,計算錯誤分類率。通過觀察錯誤分類矩陣,我們可知准確率為0.9333,結果還是很理想的。但是本次舉的例子不太好,主要可能是划分訓練集和測試集時太隨意了。但是大體的過程就是這樣了
 

 

另外,評價模型的還有ROC圖,此處用的時pROC包

 

 

 參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM