首页 > 解决方案 > ValueError:xgboost 分类不支持连续

问题描述

这是我的错误

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)```

这是我的数据集

在此处输入图像描述

标签: pythonmachine-learningxgboost

解决方案


这里:

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

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

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


推荐阅读