簡體   English   中英

如何自動排除predict.randomForest中看不見的新因子水平?

[英]How to auto-exclude unseen new factor levels in predict.randomForest?

我正在使用ramdomForest包創建隨機森林模型。 5月的數據集非常龐大,對200多個變量進行了超過一百萬次觀察。 在用樣本數據訓練隨機森林時,我無法捕獲所有變量的所有因子水平。

因此,在使用predict()對驗證集進行predict()由於存在新的因子水平(在訓練數據中未捕獲predict()因此會引發錯誤。

一種解決方案是確保訓練數據變量包含所有因子水平。 但是事實證明這很繁瑣,我並不需要所有的因素水平。

在randomForest包中運行predict() ,是否存在一種從驗證集中自動排除包含先前未識別因子水平的觀測值的方法? 可以在CRAN文檔中找到有關該參數的任何參數。 我認為我無法為此做一個可復制的例子。

一種解決方案是組合訓練矩陣和測試矩陣,並在組合矩陣上使用as.factor。 然后分成火車並再次測試。 我在隨機森林中也遇到過同樣的問題,並且該解決方案對我有用。

例如 :

   combine <- rbind(Train,Test)
   combine$var1 <- as.factor(combine$var1)

   ##Then split into Test and Train
   Train$var1 <- combine[1:nrow(train)]

   similar for Test.

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM