Взвешенная логистическая регрессия в Python - PullRequest
15 голосов
/ 22 сентября 2011

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

Ответы [ 5 ]

23 голосов
/ 13 февраля 2013

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

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

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

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

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

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

5 голосов
/ 23 февраля 2016

«Сбалансированный» режим использует значения 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 / generate / sklearn.linear_model.LogisticRegression.html # sklearn.linear_model.LogisticRegression.fit

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

3 голосов
/ 07 марта 2013

Я думаю, что вы хотите statsmodels.Он имеет большую поддержку GLM и других линейных методов.Если вы используете R, вы найдете синтаксис очень знакомым.

взвешенная регрессия statsmodels

начало работы с statsmodels

0 голосов
/ 22 сентября 2011
0 голосов
/ 22 сентября 2011

Ты знаешь Нампи? Если нет, взгляните также на Сципи и matplotlib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...