【问题标题】:ValueError: continuous is not supported with xgboost classificationValueError:xgboost 分类不支持连续
【发布时间】:2021-07-09 10:43:31
【问题描述】:

这是我的错误

ValueError                                Traceback (most recent call last)
<ipython-input-5-7c13d55b8367> in <module>()
      1 from sklearn.metrics import confusion_matrix, accuracy_score
      2 y_pred = classifier.predict(X_test)
----> 3 cm = confusion_matrix(y_test, y_pred)
      4 print(cm)
      5 accuracy_score(y_test, y_pred)

第二帧

/usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py in _check_targets(y_true, y_pred)
     95     # No metrics support "multiclass-multioutput" format
     96     if (y_type not in ["binary", "multiclass", "multilabel-indicator"]):
---> 97         raise ValueError("{0} is not supported".format(y_type))
     98 
     99     if y_type in ["binary", "multiclass"]:

ValueError: continuous is not supported

这是我的代码

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

dataset = pd.read_csv('NBA_proj_14.csv')
X = dataset.iloc[:, :-13].values
y = dataset.iloc[:, -13].values

将数据集拆分为训练集和测试集

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

在训练集上训练 XGBoost

from xgboost import XGBClassifier
classifier = XGBClassifier()
classifier.fit(X_train, y_train)

制作混淆矩阵

from sklearn.metrics import confusion_matrix, accuracy_score
y_pred = classifier.predict(X_test)
cm = confusion_matrix(y_test, y_pred)
print(cm)
accuracy_score(y_test, y_pred)```

这是我的数据集

【问题讨论】:

  • 好的,您对这个错误信息有什么问题?您阅读错误信息了吗?您了解错误信息吗?例如,你能理解y_type 在那种情况下指的是什么,以及它为什么要尝试使用"continuous"?不支持连续类型对您来说有意义吗?您是否期望输入具有这些特征?如果是这样,你为什么要创建这个混淆矩阵,你对它应该如何工作的理解是什么?如果不是,当您尝试诊断为什么会这样时发生了什么?
  • 请不要阻止引用您的文字,并尝试为您的帖子(已编辑)提供描述性标题。

标签: python machine-learning xgboost


【解决方案1】:

这里:

X = dataset.iloc[:, :-13].values
y = dataset.iloc[:, -13].values

您不是构建特征数组X 和目标数组y,而是按行拆分数据集,这不是您想要的。

只有你自己知道你想要预测的类是什么/在哪里,你想要制作你的目标数组。正如错误所暗示的,在进行分类、构建​​混淆矩阵时,您不应该预测连续变量。

【讨论】:

  • 所以给出我的代码示例,由于输出是连续的,我将如何拆分输入特征和输出特征?
猜你喜欢
  • 1970-01-01
  • 2019-04-19
  • 2016-01-07
  • 2017-11-12
  • 1970-01-01
  • 2018-05-19
  • 2015-12-16
  • 2020-05-31
相关资源
最近更新 更多