randomForest 选择回归而不是分类

机器算法验证 r 随机森林
2022-03-05 06:07:47

我在 R 中使用randomForest包并使用 iris 数据,生成的随机森林是一个分类,但是当我使用具有大约 700 个特征的数据集(这些特征是 28x28 像素图像中的每个像素)并且标签列被命名时labelrandomForest生成的是回归。我正在使用以下行:

rf <- randomForest(label ~ ., data=train)

为什么使用回归而不是分类?数据通过 读入read.csv()

2个回答

randomForest 将根据变量的类别默认为分类或回归。所以如果你输入

class(iris$Species)

你会看到这是一个因素。您的代码中的“标签”很可能是数字,因此 randomForest 默认为回归。您需要将其转换为分类因子。您可以通过在 read.table 中设置 colClasses 来将其转换或读入。

这通常是因为您没有告诉 R label 是一个分类变量。read.csv函数试图猜测每列使用什么类型,如果它看起来像一个数字列,那么这就是它将使用的类型。您可以使用该str函数检查 R 如何存储变量。您可以使用参数强制read.csv将变量读取为因子(或数字,或...)colClassesfactor或者,您可以在使用函数读取标签后将标签更改为因子。

如果不是这种情况,那么我们需要有关您的数据的更多信息。在您的数据框上运行的结果str可能会很有用。