Я пытаюсь запустить GridSearchCV, используя конвейер с Count Vectorizer и Logisti c Regression, но я получаю сообщение об ошибке, когда я ввожу "min_df = 3" в качестве параметра. Ячейка прекрасно работает без нее (за исключением того, что она занимает более часа, потому что мой массив данных очень большой). Одна из причин, по которой я хочу установить min_df = 3, - это отключить время. Мне также нужно сделать это для конвейера с векторизатором TFIDF, а затем я снова запущу их оба в конвейере с моделью Multinomial NB и затем Random Forest. Всего будет 6 разных моделей.
Вот мой код для первой, которую я пытаюсь сделать:
pipe_cvec_lr = Pipeline([
('cvec', CountVectorizer()),
('lr', LogisticRegression(solver = 'liblinear'))
])
pipe_cvec_lr_params = {
'cvec__ngram_range': [(1,1), (1,2)],
'lr__penalty': ('l1', 'l2'),
'min_df': [2]
}
gs_cvec_lr = GridSearchCV(pipe_cvec_lr,
param_grid=pipe_cvec_lr_params,
verbose=2,
cv=3) # 3-fold cross-validation.
gs_cvec_lr.fit(X_train_words, y_train);
gs_cvec_lr.score(X_test_words, y_test)
Ошибка говорит мне, что мне нужно ввести правильный параметр, но у меня сложилось впечатление, что он у меня уже введен правильно. Вот ошибка:
ValueError: Invalid parameter min_df for estimator Pipeline(memory=None,
steps=[('cvec',
CountVectorizer(analyzer='word', binary=False,
decode_error='strict',
dtype=<class 'numpy.int64'>, encoding='utf-8',
input='content', lowercase=True, max_df=1.0,
max_features=None, min_df=1,
ngram_range=(1, 1), preprocessor=None,
stop_words=None, strip_accents=None,
token_pattern='(?u)\\b\\w\\w+\\b',
tokenizer=None, vocabulary=None)),
('lr',
LogisticRegression(C=1.0, class_weight=None, dual=False,
fit_intercept=True, intercept_scaling=1,
l1_ratio=None, max_iter=100,
multi_class='auto', n_jobs=None,
penalty='l2', random_state=None,
solver='liblinear', tol=0.0001, verbose=0,
warm_start=False))],
verbose=False). Check the list of available parameters with `estimator.get_params().keys()`.
Кстати, если это уместно, эта модель применяется к одному столбцу / серии, содержащей около 1,1 миллиона ячеек строк.