我正在尝试为决策树和多项朴素贝叶斯分类器的输入准备数据。
这就是我的数据的样子(熊猫数据框):
Label Feat1 Feat2 Feat3 Feat4
0 1 3 2 1
1 0 1 1 2
2 2 2 1 1
3 3 3 2 3
我已将数据拆分为 dataLabel 和 dataFeatures。使用准备好的dataLabeldataLabel.ravel()
我需要离散化特征,以便分类器将它们视为分类而不是数字。
我正在尝试使用OneHotEncoder:
enc = OneHotEncoder()
enc.fit(dataFeatures)
chk = enc.transform(dataFeatures)
from sklearn.naive_bayes import MultinomialNB
mnb = MultinomialNB()
from sklearn import metrics
from sklearn.cross_validation import cross_val_score
scores = cross_val_score(mnb, Y, chk, cv=10, scoring='accuracy')
我收到此错误:bad input shape (64, 16)
这是标签和输入的形状:
dataLabel.shape = 72
chk.shape = 72,16
为什么分类器不接受 onehotencoded 特征?
编辑:添加我如何获得 dataFeatures
dataFeatures = data[['Accpred', 'Gyrpred', 'Barpred', 'altpred']]
Y = dataLabel.ravel()