Python sklearn(错误输入形状)值错误
我是ML和sklearn的新手。我尝试在一个数据集上使用GaussianNB,该数据集包含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使用的是一个热编码
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中的@fatehLogisticRegression
不直接支持多标签,因为它不在我链接的页面的“support multilabel
”标题下。因此,您只能为此使用OneVsRestClassifier。