Важность особенности в логистической регрессии с классификатором упаковки - PullRequest
0 голосов
/ 04 февраля 2019

Я работаю над проблемой двоичной классификации, в которой я использую логистическую регрессию в классификаторе мешков.

Несколько строк кода выглядят следующим образом: -

    model = BaggingClassifier(LogisticRegression(), 
                  n_estimators=10, 
                  bootstrap = True, random_state = 1)
    model.fit(X,y,sample_weights)

Меня интересуетЗная метрику важности функции для этой модели.Как это можно сделать, если оценщиком для классификатора в мешках является логистическая регрессия?

Я могу получить важность функции, когда дерево решений используется в качестве оценщика для классификатора в мешках.Код для этого выглядит следующим образом: -

    feature_importances = np.mean([tree.feature_importances_ for tree in  model.estimators_], axis=0)

1 Ответ

0 голосов
/ 04 февраля 2019

Вы не можете непосредственно оценить важность функции линейных классификаторов.С другой стороны, что вы можете сделать, это увидеть величину его коэффициента.Вы можете сделать это следующим образом:

# Get an average of the model coefficients
model_coeff = np.mean([lr.coef_ for lr in model.estimators_], axis=0)
# Multiply the model coefficients by the standard deviation of the data
coeff_magnitude = np.std(X, 0) * model_coeff

Это примерно скажет вам, насколько важен каждый коэффициент.Другими словами, значение >> 0 указывает на тенденцию этого коэффициента фокусироваться на захвате положительного класса, а значение << 0 указывает, что этот коэффициент фокусируется на положительном классе.


ВотПример кода на основе значений, которые вы указали в комментариях:

X_train = np.random.rand(2000, 3)
X_train.shape
# (2000, 3)
model_coeff = [[2.233232, 1.22435, 1.433434]]
coeff_magnitude = np.std(X_train, 0) * model_coeff
coeff_magnitude.shape
# (1, 3)
...