Python 给定数值目标变量,我应该转换目标变量以获得多类分类的指标矩阵吗?

Python 给定数值目标变量,我应该转换目标变量以获得多类分类的指标矩阵吗?,python,scikit-learn,Python,Scikit Learn,我正在使用RandomForestClassifier处理一个多类分类问题。目标变量Y仅包含3个值{-1,0,1}中的一个。我知道数字编码是必要的 但是,我想了解是否有必要通过执行pd来转换Y以获得如下所示的指标矩阵。获取假人(Y),然后将该指标矩阵输入随机森林分类器 -1.0 0.0 1.0 0 0 0 1 1 1 0 0 2 0 0 1 3 1 0 0

我正在使用
RandomForestClassifier
处理一个多类分类问题。目标变量
Y
仅包含3个值{-1,0,1}中的一个。我知道数字编码是必要的

但是,我想了解是否有必要通过执行
pd来转换
Y
以获得如下所示的指标矩阵。获取假人(Y)
,然后将该指标矩阵输入
随机森林分类器

      -1.0   0.0   1.0
0        0     0     1
1        1     0     0
2        0     0     1
3        1     0     0
4        1     0     0
   ...   ...   ...
6516     1     0     0
6517     0     0     1
6518     0     0     1
6519     0     0     1
6520     1     0     0
与将未转换的目标变量
Y
(即一维序列)输入
RandomForestClassifier
相比,这将如何影响机器学习算法?结果会不同吗?为什么

RandomForestClassifier
在这两种不同的场景下做了不同的事情吗?
建议采用哪种方法(指标矩阵与未转换)?

我认为没有任何理由选择其中一种方法。可以将类似shape
(n_samples,)
(n_samples,n_outputs)
的数组作为
y
传递到
sklearn.employee.RandomForestClassifier.fit()

唯一的区别是
.predict()
如何返回预测的类。我建议您根据需要预测的格式来决定Y的形状


除此之外,每个估计器的分割过程是完全相同的。

这里进行分类,y值被视为类标签。这里不需要对目标值进行编码。目标y只能是1D向量。如果特征是非数字特征,则仅需要对其进行编码。数字特征需要缩放。您可以在这里查看文档和示例:谢谢您的评论。但我注意到在这个例子中,他们会产生一个指标矩阵,我投票来结束这个问题,因为它不是关于在中定义的编程,而是关于ML理论和/或方法-请参阅机器学习中的介绍和注释。哪个文档?这里的文档说明了拟合(X,y[,样本重量]),因此X和y都是训练RFC所必需的。需要y来训练分类器。我添加了一个到文档的链接。当然,
X
y
都是需要的。我认为用户的问题是关于
y
的形状。他们不知道是应该将
y
作为1D数组还是具有多个“列”的数组进行传递。好的,谢谢,我知道了:“类似于y数组的形状(n_个样本),还是(n_个样本,n_个输出)”