Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sklearn(错误输入形状)值错误_Python_Machine Learning_Scikit Learn_Naivebayes - Fatal编程技术网

Python sklearn(错误输入形状)值错误

Python sklearn(错误输入形状)值错误,python,machine-learning,scikit-learn,naivebayes,Python,Machine Learning,Scikit Learn,Naivebayes,我是ML和sklearn的新手。我尝试在一个数据集上使用GaussianNB,该数据集包含X\u-train[2500800],Y\u-train[2500,8] from sklearn.naive_bayes import GaussianNB clf = GaussianNB() clf.fit(X, Y) 在运行程序时,它会显示 ValueError:输入形状不正确(2500,8) 如何将Y\u-train[2500,8]转换为Y\u-train[2500,1]?OP使用的是一个热编码

我是ML和sklearn的新手。我尝试在一个数据集上使用GaussianNB,该数据集包含
X\u-train[2500800]
Y\u-train[2500,8]

from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X, Y)
在运行程序时,它会显示

ValueError:输入形状不正确(2500,8)


如何将
Y\u-train[2500,8]
转换为
Y\u-train[2500,1]

OP使用的是一个热编码器,因此fit函数无法与数组一起工作@Ishant Mrinal建议这样做

Y_train = np.argmax(Y_train, axis=1)

这将允许您将一个热编码传递到fit函数。

您的数据是什么?您是否有具有
800
功能的
2500
样本?这是多标签分类吗?i、 一个样本可以有多个y标签(从这8个标签中),或者每个都只有一个标签?好吧,如果标签是
ont\u hot
格式,只需执行
y\u train=np.argmax(y\u train,axis=1)
@fateh您使用的是哪种分类器?高斯B?如果是,则它本身不支持二维
y
。您需要使用将多标签问题简化为多个二进制问题,或者使用支持多标签情况的不同算法。看见如果您提供更多详细信息(最好是在新问题中)会更好。sklearn中的@fateh
LogisticRegression
不直接支持多标签,因为它不在我链接的页面的“
support multilabel
”标题下。因此,您只能为此使用OneVsRestClassifier。