2016-12-09 256 views
0

我使用的是randomforest來分析600行21個變量的訓練集。隨機森林不生成err.rate

# Construct Random Forest Model 
rfmodel <- randomForest(default ~ ., 
        data = train.df, 
        ntree = 500, 
        mtry = 4, 
        importance = TRUE, 
        LocalImp = TRUE, 
        replace = FALSE) 
print(rfmodel) 

這生成以下內容:

> rfmodel <- randomForest(default ~ ., 
+ data = train.df, 
+ ntree = 500, 
+ mtry = 4, 
+ importance = TRUE, 
+ LocalImp = TRUE, 
+ replace = FALSE) 

> Warning message: 
> In randomForest.default(m, y, ...) : 
> The response has five or fewer unique values. Are you sure you want to do 
> regression? 

> print(rfmodel) 

>Call: 
randomForest(formula = default ~ ., data = train.df, ntree = 500,  mtry = 4, importance = TRUE, LocalImp = TRUE, replace = FALSE) 
      Type of random forest: regression 
       Number of trees: 500 
No. of variables tried at each split: 4 

     Mean of squared residuals: 0.1577596 
       % Var explained: 23.89 

這缺少某種原因混淆矩陣。當我嘗試生成err.rate,它給了我這樣的:

頭(rfmodel $ err.rate)
NULL

+0

所以我的問題是,我在這裏做錯了什麼?我需要混淆矩陣與OOB和0和1基於「默認」這是可觀察的變量。 – user7273726

+0

不要在評論中添加問題 - 編輯問題。 –

回答

0

我認爲,你想要做分類,但默認情況下是被視爲一個數字變量。嘗試class(train.df$default)。如果這實際上是一個數字變量,那麼在運行RF之前,您需要將其轉換爲一個因子。

+0

你說得對 - 我應該把它轉換成一個因素。謝謝 – user7273726