Я пытаюсь решить проблему классификации текста. Я хочу создать базовую модель, используя MultinomialNB
мои данные сильно разбалансированы по нескольким категориям, поэтому решили использовать библиотеку несбалансированную с конвейером sklearn и ссылаться на учебник .
Модель дает сбой и выдает ошибку после введения двух этапов в конвейер, как предложено в документах.
from imblearn.pipeline import make_pipeline
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.naive_bayes import MultinomialNB
from imblearn.under_sampling import (EditedNearestNeighbours,
RepeatedEditedNearestNeighbours)
# Create the samplers
enn = EditedNearestNeighbours()
renn = RepeatedEditedNearestNeighbours()
pipe = make_pipeline_imb([('vect', CountVectorizer(max_features=100000,\
ngram_range= (1, 2),tokenizer=tokenize_and_stem)),\
('tfidf', TfidfTransformer(use_idf= True)),\
('enn', EditedNearestNeighbours()),\
('renn', RepeatedEditedNearestNeighbours()),\
('clf-gnb', MultinomialNB()),])
Ошибка:
TypeError: Last step of Pipeline should implement fit. '[('vect', CountVectorizer(analyzer='word', binary=False, decode_error='strict',
Может кто-нибудь, пожалуйста, помогите здесь. Я также готов использовать другой способ (Boosting / SMOTE) реализации?