Я пытаюсь дискретизировать данные для классификации. Их значения были строками, и я преобразовал их в числа 0,1,2,3.
Вот как выглядят данные (кадр данных pandas). Я разделил фрейм данных на dataLabel
и dataFeatures
Label Feat1 Feat2 Feat3
0 0 3 0
1 1 1 2
2 0 2 2
3 1 3 3
Я хочу использовать дерево решений scikit Learn и многочленный наивный байесовский метод и пытаюсь дискретизировать данные, используя DictVectorizer
Это то, что у меня есть
dictvec = dataFeatures.T.to_dict().values()
from sklearn.feature_extraction import DictVectorizer as DV
vectorizer = DV( sparse = False )
X = vectorizer.fit_transform(dictvec)
Y = dataLabel.ravel()
Это мой ввод в классификатор
from sklearn.naive_bayes import MultinomialNB
mnb = MultinomialNB()
from sklearn import metrics
scores = cross_val_score(mnb, Y, X, cv=10, scoring='accuracy')
Я получаю сообщение об ошибке bad input shape (64, 4)
, но я не уверен, связано ли это с дискретизацией данных.
Мой вопрос: это правильный способ дискретизации данных? Мой код правильный или есть лучший способ сделать это?