【问题标题】:How to solve "ValueError: y should be a 1d array, got an array of shape (3, 5) instead." for naive Bayes?如何解决“ValueError:y 应该是一维数组,得到一个形状为 (3, 5) 的数组。”对于朴素贝叶斯?
【发布时间】:2021-03-10 13:39:25
【问题描述】:
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 放入一维数组中?

【问题讨论】:

  • 根据 sklearn 文档,看起来 GaussianNB 期望目标是一个向量。

标签: python machine-learning jupyter-notebook regression naivebayes


【解决方案1】:

train/test split 的分配顺序不对,使用:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 2021-11-05
    • 2022-01-17
    • 2017-05-31
    • 1970-01-01
    • 2012-02-21
    • 2011-12-28
    相关资源
    最近更新 更多