Drogi Stackoverflow Użytkownicy,

Pracowałem nad projektem uczenia maszynowego. Kilka miesięcy temu wyszkoliłem model regresji logistycznej i zapisałem go za pomocą marynowania, więc mogłem zastosować go do moich zbiorów danych. Używam tego kodu, aby załadować model, kiedy go potrzebuję.

import pickle
infile = open('classifier','rb')
MODEL = pickle.load(infile)
infile.close()
MODEL

output:
GridSearchCV(cv=RepeatedStratifiedKFold(n_repeats=500, n_splits=5, random_state=1234),
             estimator=Pipeline(steps=[('transformer',
                                        QuantileTransformer(random_state=1234)),
                                       ('scaler', RobustScaler()),
                                       ('logreg',
                                        LogisticRegression(penalty='elasticnet',
                                                           solver='saga'))]),
             n_jobs=1,
             param_grid={'logreg__C': [0.1], 'logreg__l1_ratio': [0.1],
                         'transformer__output_distribution': ['uniform']},
             return_train_score=True, scoring='roc_auc')

Model nie jest tylko logitem, ale mam różne kroki.

Chciałbym uzyskać współczynniki logit, ale kiedy używam .coef_ daje mi błąd.

logreg = MODEL.estimator.steps[2][1]
logreg.coef_
AttributeError: 'LogisticRegression' object has no attribute 'coef_'

Jakieś pomysły, jak to rozwiązać?

Z góry dziękuję!

0
Enrico Massignani 23 październik 2020, 13:22

1 odpowiedź

Najlepsza odpowiedź

Nie masz dostępu do dopasowanego modelu. Aby to sprawdzić, zrób to:

from sklearn.utils.validation import check_is_fitted
check_is_fitted( MODEL.estimator.steps[2][1] )

# NotFittedError: This LogisticRegression instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.

Aby uzyskać dostęp do dopasowanego modelu, musisz uzyskać dostęp do najlepszego estymatora:

check_is_fitted(MODEL.best_estimator_["logreg"])
# None
# None means that it is fitted

Teraz możesz uzyskać współczynniki

MODEL.best_estimator_["logreg"].coef_

Aby wyszukać, COF _ nie jest ustawiony, dopóki nazywa się fit () .

1
Dharman 23 październik 2020, 11:03