2016-12-09 398 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