Атрибуты Grid Search показывались, поскольку они не были частью этого метода - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь выполнить гиперпараметрическую настройку логистической регрессии и 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_'
...