python - 如何解决“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 放入一维数组中?
解决方案
训练/测试拆分的分配没有正确排序,请使用:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
推荐阅读
- postgresql - 我们可以用 kafka 实现 CRUD spring boot 和 postgresql
- html - 在 Angular 中等待一段时间后,来自 api 的数据会丢失
- performance - B 的 Numpy 高效计算:= v[0] * h(u[0] * A) + ... + v[k-1] * h(u[k-1] * A),其中 u 和 v 是一维数组和 A 是一个二维数组
- c++ - `std::vector`的常数时间`contains`?
- angular - Angular TemplateRef 变量
- android - 限制用户进行特定类型的生物特征认证?
- python - Python Tkinter 依赖下拉
- ethereum - 尝试编译时出现布朗尼错误
- jenkins - 如何在詹金斯工作中获得公关审稿人的电子邮件地址
- javascript - 检查对象属性深度的安全方法?