Весовая логистическая регрессия в 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
Надеюсь, что это...
Ответ 3
Я думаю, что вы хотите statsmodels
. Он отлично поддерживает GLM и другие линейные методы. Если вы исходите из R, вы обнаружите, что синтаксис очень знаком.
статистическая регрессия статистических моделей
начало работы w/statsmodels
Ответ 4
Посмотрите scikits.learn Реализация логистической регрессии
Ответ 5
Знаешь ли ты? Если нет, взгляните также на Scipy и matplotlib.