Ограниченная логистическая регрессия в Python - PullRequest
0 голосов
/ 31 января 2019

Стандартный логарифмический регрессор в scikit-learn принимает уравнение регрессии:

P(X) = 1/ (1 + exp(b0 + b1*X1 + ... + bn*Xn))

.. и решает для b, используя различные подпрограммы решателя.

Для конкретного проекта я хотел бы ограничить уравнение регрессии между 0-a (вместо 0-1) и добавить переменную c, чтобы центрировать независимую переменную Xk, например

P(X) = a / (1 + exp((b0 + b1*X1 + .. + bn*Xn) * (Xk  - c)))

и решить для a, b и c.

Есть какие-нибудь мысли / идеи о том, как изменить logistic.py для достижения этой цели?Я думал об изменении функции expit , чтобы отразить измененное уравнение.Но как сообщить решающим, что они также включают новые переменные a и c?Есть ли в наличии скрипты, способные обработать моё модифицированное уравнение логистической регрессии?

1 Ответ

0 голосов
/ 31 января 2019

Не совсем понятно, что вам нужно, но

P(X) = a / (1 + exp(b0 + b1*X1 + .. + bn*Xn) * (Xk  - c))

это то же самое, что и

P(X) = a / (1 + exp(b0 + b1*X1 + .. + bn*Xn + log(Xk)/log(c))

, поэтому замените c на exp(1/bk)

...