Невозможно разместить метаклассификатор с помощью StackingCVClassifier - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь выполнить классификацию текста с помощью укладки. Я новичок в ML, поэтому извиняюсь, если это глупый вопрос. Я пытаюсь обучить один и тот же алгоритм LogisticRegression различным текстовым функциям для создания разных классификаторов, а затем использовать мета-классификатор (также LogisticRegression), чтобы объединить их все. Функции, которые я использую, - это слова в тексте и соответствующие теги части речи.

Классификатор, использующий слова в качестве функции, определяется следующим конвейером:

lr =LogisticRegression()

words = make_pipeline(ColumnSelector(column='text'), 
                      CountVectorizer(analyzer='word', token_pattern=r'\w{1,}', max_features=5000),                     
                      lr)

Классификатор, использующий POS в качестве функции, определяется следующим конвейером:

pos = make_pipeline(ColumnSelector(column='pos'),
                                    CountVectorizer(binary=True, ngram_range=(2,3), 
                                    max_features=5000),
                                    lr)

Наконец, метаклассификатор определяется следующим образом:

sclf = StackingCVClassifier(classifiers=[words, pos], 
                            meta_classifier=lr)

Проблема возникает, когда я пытаюсь обучить классификатор:

classifiers = {"Words": words,
               "POS": pos,
               "Stack": sclf}
for key in classifiers:
       classifier = classifiers[key]
       classifier.fit(X_train, Y_train)

Слова и POS установлены, но классификатор стека - нет, и я получаю следующую ошибку:

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

X_train содержит фрейм данных со столбцом «текст», который содержит необработанный текст, и столбец «pos», который содержит необработанные теги POS, поэтому я применяю преобразования, необходимые через конвейеры.

Когда я пытаюсь сделать то же самое с методом StackingClassifier, у меня нет этой проблемы. Есть идеи о том, что идет не так?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...