SKLearn Pipeline с ColumnTransformer: у объекта 'numpy.ndarray' нет атрибута 'lower' - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь использовать SKLearn 0.20.2 для создания конвейера при использовании новой функции ColumnTransformer.Моя проблема заключается в том, что я получаю сообщение об ошибке:

AttributeError: 'numpy.ndarray' object has no attribute 'lower'

У меня есть столбец с каплями текста, который называется text.Все остальные мои столбцы имеют числовой характер.Я пытаюсь использовать Countvectorizer в своем конвейере, и я думаю, что вот в чем проблема.Буду очень признателен за руку с этим.

from sklearn.impute import SimpleImputer
from sklearn.compose import ColumnTransformer
# plus other necessary modules

# mapped to column names from dataframe
numeric_features = ['hasDate', 'iterationCount', 'hasItemNumber', 'isEpic']
numeric_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='median'))
])

# mapped to column names from dataframe
text_features = ['text']
text_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='most_frequent”')),
    ('vect', CountVectorizer())
])

preprocessor = ColumnTransformer(
    transformers=[('num', numeric_transformer, numeric_features),('text', text_transformer, text_features)]
)

clf = Pipeline(steps=[('preprocessor', preprocessor),
                      ('classifier', MultinomialNB())
                     ])

x_train, x_test, y_train, y_test = train_test_split(features, labels, test_size=0.33)
clf.fit(x_train,y_train)

1 Ответ

0 голосов
/ 05 февраля 2019

@ Сергей Бушманов помог мне диагностировать ошибку в моем заголовке, она была вызвана запуском SimpleImputer в тексте.

У меня есть еще одна ошибка, для которой я напишу новый вопрос.

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