2013-03-17 77 views
1

我使用的是GBM包在R.教育訓練預測新的水平的情況下工作得很好,有一個合理的 錯誤率,然而,當想跑在訓練集的預測:包含新的水平因子變量,然後我得到了以下錯誤:預測誤差爲變量

gbm1 <- gbm(SalePrice ~., data=bb,distribution="gaussian",n.trees=7000,cv.folds=3,shrinkage=0.001,interaction.depth=4) 

    f.predict <- exp(predict.gbm(gbm1,data.frame(bbv),n.trees=7000)) 
     Error in predict.gbm(gbm1, data.frame(bbv), n.trees = 7000) : 
      New levels for variable <and the name of the levels are listed> 

嘗試在錯誤文本搜索,但只找到了GBM代碼本身;任何建議表示讚賞(

+1

的錯誤是明顯的(即使你給我們的變量名稱之前削減它,我不知道爲什麼),你必須在你給'gbm.predict'新的數據一個新的水平。 – agstudy 2013-03-17 20:33:58

回答

4

我!對此不熟悉GBM軟件包,但錯誤表明,當預測數據包含以前未知的級別時,GBM無法處理根據模型進行的預測。其背後的基本原理是,該模型只能說明它所訓練的數據類別。在一個簡單的線性模型的情況下,則不能指望模型a~ba取決於b)來預測數據涉及一個新的變量b,即a~b+c。該模型沒有受過訓練的行爲b+c,只爲b