Весовая логистическая регрессия в Python

Я ищу хорошую реализацию для логистической регрессии (не регуляризованной) в Python. Я ищу пакет, который также может получить вес для каждого вектора. Может ли кто-нибудь предложить хорошую реализацию/пакет? Спасибо!

Ответы

Ответ 1

Я замечаю, что этот вопрос довольно старый, но, надеюсь, это может помочь кому-то. С помощью sklearn вы можете использовать класс SGDClassifier для создания модели логистической регрессии, просто перейдя в "журнал" как потерю:

sklearn.linear_model.SGDClassifier(loss='log', ...).

Этот класс реализует взвешенные образцы в функции fit():

classifier.fit(X, Y, sample_weight=weights)

где веса - это массив, содержащий весы выборки, которые должны быть (очевидно) той же длины, что и число точек данных в X.

См. http://scikit-learn.org/dev/modules/generated/sklearn.linear_model.SGDClassifier.html для полной документации.

Ответ 2

"сбалансированный" режим использует значения y для автоматической корректировки весов, обратно пропорциональных частотам класса во входных данных, как n_samples/(n_classes * np.bincount(y))

from sklearn.linear_model import LogisticRegression

model = LogisticRegression(class_weight='balanced')

model = model.fit(X, y)

ИЗМЕНИТЬ

Весы могут быть добавлены в методе подгонки. Вам просто нужно передать массив n_samples. Отъезд документации -

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression.fit

Надеюсь, что это...

Ответ 5

Знаешь ли ты? Если нет, взгляните также на Scipy и matplotlib.