python - 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)```
这是我的数据集
解决方案
这里:
X = dataset.iloc[:, :-13].values
y = dataset.iloc[:, -13].values
您不是构建特征数组X
和目标数组y
,而是逐行拆分数据集,这不是您想要的。
你一个人知道你想要预测的类是什么/在哪里,你想要制作你的目标数组。正如错误所暗示的那样,在进行分类、构建混淆矩阵时,您不应该预测连续变量。
推荐阅读
- ios - 音频通话中缺少用户信息
- django - Elastic Beanstalk 上的 Celery + Django 导致错误:
, - c++11 - 模板类层次结构的对象工厂注册
- sql - 如何使用 isnull 东西从 2 个不同的表中获取逗号分隔的 SQL 值
- apache-kafka - 在 docker swarm 中使用 Kafka 的服务的蓝/绿部署
- sql - 如何使用 sqlite 从 DataTime 中按小时过滤?
- r - 如何在 Jupyter 中使用 R Server 版本
- javascript - Wordpress 插件功能在桌面上运行良好,但在移动设备上无法正常运行。为什么?
- c# - c#在Forms应用程序中访问“Main”UserForm上的方法
- maven - 为什么 exec-maven-plugin 将所有阶段运行两次?