Я пытаюсь выполнить гиперпараметрическую настройку логистической регрессии и SGDClassifier с «потерей журнала», используя метод GridSearchCV. Но после печати атрибутов best_score_, best_params_ появляется ошибка, так как они не были частью метода GridSearchCV. И у меня установлен обновленный пакет scikit (0.20.3). Не удалось выяснить причину? или я делаю ошибку при запуске нескольких моделей по методу Grid Search? Какие-нибудь рекомендации будут полезны?
Я переустановил пакет sklearn в самый новый пакет, но все равно не помог!
Я пытаюсь проверить производительность логистической модели как в методе LogisticRegression (), так и в SGDClassifier () с потерей журнала, поэтому поймите, насколько хорошо Stochastic Gradient Descent создает разницу в результатах метрик. Ниже приведен фрагмент кода:
from sklearn.model_selection import GridSearchCV
estimator = [logr_w2v, sgd_lr_w2v]
para = {'C' : [0.0001, 0.001, 0.01, 0.1, 1, 5, 10, 100, 1000], 'alpha' : [0.0001, 0.001, 0.01, 0.1, 1, 5, 10, 100, 1000]}
Grid_w2v = GridSearchCV(estimator, param_grid = para, scoring = 'f1', n_jobs= 4, refit = True , cv = 5)
GridSearchCV(cv=5, error_score='raise-deprecating',
estimator=[LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
intercept_scaling=1, max_iter=1000, multi_class='warn', n_jobs=4,
penalty='l1', random_state=50, solver='saga', tol=0.0001,
verbose=0, warm_start=False), SGDClassifier(alpha=0.0001, ...dom_state=50, shuffle=True, tol=0.001,
validation_fraction=0.1, verbose=0, warm_start=False)],
fit_params=None, iid='warn', n_jobs=4,
param_grid={'C': [0.0001, 0.001, 0.01, 0.1, 1, 5, 10, 100, 1000], 'alpha': [0.0001, 0.001, 0.01, 0.1, 1, 5, 10, 100, 1000]},
pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',
scoring='f1', verbose=0)
hyperparameter = []
for i in range(len(estimator)):
Grid_w2v.estimator[i].fit(x1_w2v, y_true)
hyperparameter.append((Grid_w2v.estimator[i]).best_params_)
print("the best score value on each estimator is: ",Grid_w2v.best_score_)
Я ожидал, что вышеуказанный цикл сохранит гиперпараметры как из Logisitic Regression, так и из SGDClassifier в гиперпараметре. Но я получил следующую ошибку:
AttributeError Traceback (most recent call last)
<ipython-input-44-b53708a5f29e> in <module>()
AttributeError: 'GridSearchCV' object has no attribute 'best_score_'