колонка:

аюсь использовать SKLearn 0.20.2 для создания конвейера при использовании новой функции ColumnTransformer. Моя проблема в том, что когда я запускаю свой классификатор:clf.fit(x_train, y_train) Я продолжаю получать сообщение об ошибке:

ValueError: all the input array dimensions except for the concatenation axis must match exactly

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

После того, как я запустил конвейер и проверил свой x_train / y_train, он выглядит следующим образом, если это полезно (за исключением номеров строк, которые обычно отображаются в левом столбце, а текстовый столбец становится выше, чем показано на рисунке).

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=[
    ('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)

Ваш ответ на вопрос