[英]preprocess imputation R caret and predicting
我注意到預測()僅會在完整案例上創建預測。 我已經列入medianImpute
在預處理選項,如下列:
train(outcome ~ .,
data = df,
method = "rf",
tuneLength = 5,
preProcess = c("YeoJohnson", "center", "scale", "medianImpute"),
metric = 'ROC',
trControl = train_ctrl)
}
這是否意味着我應該在訓練集合之前對缺失值進行插補? 如果沒有,我將無法為測試集中的所有案例創建預測。 我已經在庫恩博士的書中讀到,交叉驗證期間應該進行預處理...謝謝!
如果使用中medianImpute
則絕對需要在訓練集之前進行,否則,即使您用中medianImpute
測試集,結果也將是錯誤的。
以以下極端情況為例:
您只有一個由數字1到100組成的獨立變量X。想象一下將數據集拆分為50%的測試集和50%的訓練集的極端情況, 其中1到50出現在測試集中,數字51在訓練中達到100 。
> median(1:50) #test set median
[1] 25.5
> median(51:100) #training set median
[1] 75.5
使用您的代碼(插入符號的訓練函數),訓練集中的缺失值將被75.5代替。 這將產生三個主要問題:
(medianImpute)
,因為測試集中的缺失值將被25.5替換 因此,最好的辦法是在創建訓練集之前考慮丟失的數據。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.