我在 R 中使用randomForest包并使用 iris 数据,生成的随机森林是一个分类,但是当我使用具有大约 700 个特征的数据集(这些特征是 28x28 像素图像中的每个像素)并且标签列被命名时label
,randomForest
生成的是回归。我正在使用以下行:
rf <- randomForest(label ~ ., data=train)
为什么使用回归而不是分类?数据通过 读入read.csv()
。
我在 R 中使用randomForest包并使用 iris 数据,生成的随机森林是一个分类,但是当我使用具有大约 700 个特征的数据集(这些特征是 28x28 像素图像中的每个像素)并且标签列被命名时label
,randomForest
生成的是回归。我正在使用以下行:
rf <- randomForest(label ~ ., data=train)
为什么使用回归而不是分类?数据通过 读入read.csv()
。
randomForest 将根据变量的类别默认为分类或回归。所以如果你输入
class(iris$Species)
你会看到这是一个因素。您的代码中的“标签”很可能是数字,因此 randomForest 默认为回归。您需要将其转换为分类因子。您可以通过在 read.table 中设置 colClasses 来将其转换或读入。
这通常是因为您没有告诉 R label 是一个分类变量。该read.csv
函数试图猜测每列使用什么类型,如果它看起来像一个数字列,那么这就是它将使用的类型。您可以使用该str
函数检查 R 如何存储变量。您可以使用参数强制read.csv
将变量读取为因子(或数字,或...)colClasses
。factor
或者,您可以在使用函数读取标签后将标签更改为因子。
如果不是这种情况,那么我们需要有关您的数据的更多信息。在您的数据框上运行的结果str
可能会很有用。