2017-10-09 88 views
0

我需要快速幫助。我一直試圖簡單地應用GBM,但我面臨着一個我無法解決的錯誤。請幫忙。所使用的數據集可以在「https://www.kaggle.com/c/boston-housing/data」 代碼中找到:在R中使用GBM進行預測時出錯

data1 <- read.csv("train.csv") 
data2 <- read.csv("test.csv") 
data2$medv<- NA 

GBM library(caret) 
library(gbm) 
fitControl <- trainControl(method = "cv", number = 10) 

tune_Grid <- expand.grid(interaction.depth = 2, n.trees = 500, shrinkage = 0.1, n.minobsinnode = 10) 
set.seed(825) 
fit <- train(medv ~ ., data = data1, method = "gbm", trControl = fitControl, verbose = FALSE, tuneGrid = tune_Grid) 

一切正常,直到這裏。當我預測到這個問題時。

predicted <- predict(fit,data2,type= "prob") 

> predicted <- predict(fit,data2,type= "prob") Error in [.data.frame(out, , obsLevels, drop = FALSE) : undefined columns selected 

但是,如果我刪除類型參數,它的工作原理沒有任何錯誤。

predicted <- predict(fit,data2) 

> predicted <- predict(fit,data2) 
> 

請幫助我失去了什麼。

謝謝, Priyank

回答

0

medv從波士頓殼體數據不是類的載體,而是一個連續的結果。

train$medv[1:20] 
[1] 24.0 21.6 33.4 36.2 22.9 15.0 18.9 21.7 20.4 18.2 19.9 23.1 20.2 13.6 19.6 15.2 14.5 14.8 12.7 14.5 

type = "probs"被設定在caret功能predict.train輸出類概率的數據幀。這對連續變量沒有意義,因此它返回一個錯誤。通常,使用RMSE(均方根誤差)評估連續結果的模型性能,您可以使用caret函數postResample來計算。

postResample: 給定兩個數據向量,計算均方誤差和R平方。對於兩個因素,總體協議率和Kappa是確定的。

相關問題