首页 > 解决方案 > 如何解决“ValueError:y 应该是一维数组,得到一个形状为 (3, 5) 的数组。” 对于朴素贝叶斯?

问题描述

from sklearn.model_selection import  train_test_split

X = data.drop('Vickers Hardness\n(HV0.5)', axis=1)
y = data['Vickers Hardness\n(HV0.5)']

X_train, y_train, X_test, y_test = train_test_split(X, y, test_size = 0.3)
from sklearn.naive_bayes import GaussianNB 
gnb = GaussianNB()
gnb.fit(X_train, y_train)
y_pred = gnb.predict(X_test)

ValueError: y 应该是一个一维数组,得到一个形状为 (3, 5) 的数组。

使用数据:

使用数据

如何纠正朴素贝叶斯中的这个错误?如何将 y 放入一维数组中?

标签: pythonmachine-learningjupyter-notebookregressionnaivebayes

解决方案


训练/测试拆分的分配没有正确排序,请使用:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)

推荐阅读