未知标签类型:在多类分类问题上使用随机森林分类器时“连续”

Posted

技术标签:

【中文标题】未知标签类型:在多类分类问题上使用随机森林分类器时“连续”【英文标题】:Unknown label type: 'continuous' while using random forest classifier on a multi class classification problem 【发布时间】:2021-08-19 08:46:27 【问题描述】:

我的代码:

rf_classifier = RandomForestClassifier(n_estimators=600, min_samples_split=25)
rf_classifier.fit(combined_x_train, y_train)

错误:

ValueError                                Traceback (most recent call last)
<ipython-input-55-3f817939cbaa> in <module>
      1 rf_classifier = RandomForestClassifier(n_estimators=600, min_samples_split=25)
----> 2 rf_classifier.fit(combined_x_train, y_train)
      3 

~\AppData\Roaming\Python\Python39\site-packages\sklearn\ensemble\_forest.py in fit(self, X, y, sample_weight)
    329         self.n_outputs_ = y.shape[1]
    330 
--> 331         y, expanded_class_weight = self._validate_y_class_weight(y)
    332 
    333         if getattr(y, "dtype", None) != DOUBLE or not y.flags.contiguous:

~\AppData\Roaming\Python\Python39\site-packages\sklearn\ensemble\_forest.py in _validate_y_class_weight(self, y)
    557 
    558     def _validate_y_class_weight(self, y):
--> 559         check_classification_targets(y)
    560 
    561         y = np.copy(y)

~\AppData\Roaming\Python\Python39\site-packages\sklearn\utils\multiclass.py in check_classification_targets(y)
    181     if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
    182                       'multilabel-indicator', 'multilabel-sequences']:
--> 183         raise ValueError("Unknown label type: %r" % y_type)
    184 
    185 

ValueError: Unknown label type: 'continuous'

y_train 是一个 NumPy 数组,其值在 0 到 5 之间,用于多类分类,每个类对应一个整数。

y_train 的类型是 int32。

我不明白为什么会收到此错误。

【问题讨论】:

你能确认你的目标是你真正想要的吗?未知标签类型:当拟合时 y_train 出现问题时会发生错误。检查标签中是否有浮点数。 【参考方案1】:

当 y_train 不是输入到任何分类器模型中的类型时,可能会出现此问题。在这种情况下,y_train 是 Series 类型。当我将类型更改为 NumPy 数组时,它工作正常。 代码如下:

y_train = y_train.to_numpy(dtype="int")
y_test = y_test.to_numpy(dtype="int")

【讨论】:

以上是关于未知标签类型:在多类分类问题上使用随机森林分类器时“连续”的主要内容,如果未能解决你的问题,请参考以下文章

如何在多类预测中得到未知类?

尝试使用管道和网格搜索运行随机森林分类器时出错

CNN模型在多类分类上过拟合

ValueError:分类报告的未知标签类型

如何提高随机森林多类分类模型的准确率?

ValueError:未知标签类型:“未知”-标签是数字