2017-02-16 113 views
0

我在這裏要問一個關於在RandomForest package中使用RandomForest函數的基本問題。 我正在使用RF algorithm來執行土地覆蓋分類。在RandomForest中使用驗證和訓練數據集

我有一些geo-spatial數據,我分成了一個訓練數據集(pks_trainingdf)和驗證數據集(pks_validationdf)。

每個df包含34列;前33列是我想用於分類的樂隊;最後一列(「類」)包含這些類,它們應該是RF分類的輸出。

我的問題是:哪個數據集是參數x和哪個是xtest? 以下代碼行是否正確?

modelRF_5 <- randomForest(x=pks_validationdf[, c(1:33)], 
         y=pks_validationdf$class, xtest=pks_trainingdf[, c(1:33)], 
         ytest=pks_trainingdf$class, importance=TRUE) 

回答

1

x用於訓練子集,而xtest用於測試或驗證子集。在你的情況下,它看起來相反。如果兩者都具有相同的大小(通常情況不是這樣),這並不重要。在分解爲訓練和驗證子集之前,將數據集隨機化是非常重要的。如果不是,你應該改變它。另外,分爲三個子集而不是兩個比較安全。一個用於訓練,其他用於驗證模型,最後一個用於報告錯誤。

+0

謝謝你的回答,這正是我一直在尋找的!所以,我使用Random Samping獲得了訓練和驗證數據集,所以它應該沒問題,對吧?如果我想將數據集分成三部分,它將如何工作? x將是訓練數據集,x測試數據集用於報告錯誤,那麼驗證數據集將在哪裏去...? –

+0

如果我有訓練像素+驗證像素+未知像素(最後一個要分類),該怎麼辦? –

+0

如果您有3個子集,首先使用驗證方法來調整模型並確定培訓規模。你可以做繪圖學習曲線並使用彎頭方法。另一個分區(測試)是您將用來檢查和報告模型的最終準確度和誤差度量的分區。 –