какие коэффициенты идут в какой класс в мультиклассовой логистической регрессии в scikit learn?


Я с помощью логистической регрессии пакет scikit узнать за проблема мультиклассовой.

logit = LogisticRegression(penalty='l1')
logit = logit.fit(X, y)

Меня интересует, какие функции являются движущей силой данного решения.

logit.coef_
Вышесказанное дает мне прекрасный фрейм данных в формате (n_classes, n_features), но все классы и имена объектов исчезли. С функциями все в порядке, потому что предположение, что они индексируются так же, как я их передал, кажется безопасным...

Но с классами это проблема, так как я никогда явно не передавал в занятия в любом порядке. Итак, к какому классу принадлежат наборы коэффициентов (строки в фрейме данных) 0, 1, 2 и 3?

1 5

1 ответ:

Порядок будет таким же, как и возвращаемый logit.classes_ (classes_-атрибут подогнанной модели, представляющий уникальные классы, присутствующие в y), и в основном они будут расположены в алфавитном порядке в случае строк.

Чтобы объяснить это, мы вышеупомянутые метки y на случайном наборе данных с LogisticRegression:

import numpy as np
from sklearn.linear_model import LogisticRegression

X = np.random.rand(45,5)
y = np.array(['GR3', 'GR4', 'SHH', 'GR3', 'GR4', 'SHH', 'GR4', 'SHH',
              'GR4', 'WNT', 'GR3', 'GR4', 'GR3', 'SHH', 'SHH', 'GR3', 
              'GR4', 'SHH', 'GR4', 'GR3', 'SHH', 'GR3', 'SHH', 'GR4', 
              'SHH', 'GR3', 'GR4', 'GR4', 'SHH', 'GR4', 'SHH', 'GR4', 
              'GR3', 'GR3', 'WNT', 'SHH', 'GR4', 'SHH', 'SHH', 'GR3',
              'WNT', 'GR3', 'GR4', 'GR3', 'SHH'], dtype=object)

lr = LogisticRegression()
lr.fit(X,y)

# This is what you want
lr.classes_

#Out:
#    array(['GR3', 'GR4', 'SHH', 'WNT'], dtype=object)

lr.coef_
#Out:
#    array of shape [n_classes, n_features]
Таким образом, в матрице coef_ индекс 0 в строках представляет собой " GR3 "(первый класс в массиве classes_, 1 = " GR4 " и т. д.

Надеюсь, это поможет.