Как использовать несбалансированную библиотеку с конвейером sklearn? - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь решить проблему классификации текста. Я хочу создать базовую модель, используя 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) реализации?

1 Ответ

0 голосов
/ 24 января 2019

Кажется, что конвейер из «marnarn» не поддерживает именование, как в sklearn.Из imblearn документации :

* шаги: список оценок.

Вы должны изменить свой код на:

pipe = make_pipeline_imb( CountVectorizer(max_features=100000,\
                                         ngram_range= (1, 2),tokenizer=tokenize_and_stem),\
                         TfidfTransformer(use_idf= True),\
                         EditedNearestNeighbours(),\
                         RepeatedEditedNearestNeighbours(),\
                         MultinomialNB())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...