Как получить коэффициенты модели, используя AdaBoostClassifier Склеарна (с регрессией Logisti c в качестве базовой оценки) - PullRequest
2 голосов
/ 23 февраля 2020

Я построил модель, используя AdaBoostClassifier Scikit-Learn * с Logisti c регрессия в качестве базовой оценки.

model = AdaBoostClassifier(base_estimator=linear_model.LogisticRegression()).fit(X_train, Y_train)

Как получить коэффициенты модели? Я хочу посмотреть, насколько каждая функция будет вносить численный вклад в целевую переменную log(p/(1-p)).

Большое спасибо.

1 Ответ

2 голосов
/ 23 февраля 2020

Adaboost имеет атрибут estimators_, который позволяет вам перебирать всех подходящих базовых учеников. И вы можете использовать параметр coef_ каждого базового учащегося, чтобы получить коэффициенты, назначенные для каждой функции. Затем вы можете усреднить коэффициенты. Обратите внимание, что вам нужно учитывать тот факт, что базовым ученикам Adaboost назначается индивидуальный вес.

coefs = []
for clf,w in zip(model.estimators_,model.estimator_weights_):
    coefs.append(clf.coef_*w)
coefs = np.array(coefs).mean(axis=0)
print(coefs)

Если у вас есть бинарная классификация, вы можете изменить строку внутри l oop as:

coefs.append(clf.coef_.reshape(-1)*w)
...