Bounded logistical regression in Python
Hi there! The standard logistical regression solver <https://github.com/scikit-learn/scikit-learn/blob/7389dba/sklearn/linear_mod...> in scikit-learn assumes the regression equation:<p> P(X) = 1/ (1 + exp(b0 + b1*X1 + ... + bn*Xn))</p> .. and solves for the b's using various solver routines. For a specific project, I'd like to bound the regression equation between 0-a (instead of 0-1) and add a variable c to center an independent variable Xk, e.g.<p> P(X) = a / (1 + exp(b0 + b1*X1 + .. + bn*Xn) * (Xk - c))) </p> ... and solve for a, b's and c. Any thoughts/ideas on how to modify logistic.py to achieve this? I thought of modifying the expit <https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.special.expit.html>function to reflect the changed equation. But how do a let the solvers know to also include the new variables a and c? Any scripts available that are able to handle my modified logistic regression equation?
I don't quite get your terminology, to "add a variable c to center an independent variable Xk", and you've got an extra ) in your equation, so I'm not sure exactly where you want it... If you mean P(X) = a / (1 + exp(b0 + b1*X1 + .. + bn*Xn) * (Xk - c)) then that's the same as P(X) = a / (1 + exp(b0 + b1*X1 + .. + bn*Xn + log(Xk)/log(c)) replace c by exp(1/bk) and you've got the same old logistic regression, haven't you? On Thu, 31 Jan 2019 at 20:53, Jaap van Kampen <jaapvankampen@gmail.com> wrote:
Hi there! The standard logistical regression solver <https://github.com/scikit-learn/scikit-learn/blob/7389dba/sklearn/linear_mod...> in scikit-learn assumes the regression equation:<p> P(X) = 1/ (1 + exp(b0 + b1*X1 + ... + bn*Xn))</p> .. and solves for the b's using various solver routines.
For a specific project, I'd like to bound the regression equation between 0-a (instead of 0-1) and add a variable c to center an independent variable Xk, e.g.<p> P(X) = a / (1 + exp(b0 + b1*X1 + .. + bn*Xn) * (Xk - c))) </p> ... and solve for a, b's and c.
Any thoughts/ideas on how to modify logistic.py to achieve this? I thought of modifying the expit <https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.special.expit.html>function to reflect the changed equation. But how do a let the solvers know to also include the new variables a and c? Any scripts available that are able to handle my modified logistic regression equation?
_______________________________________________ scikit-learn mailing list scikit-learn@python.org https://mail.python.org/mailman/listinfo/scikit-learn
participants (2)
-
Jaap van Kampen -
Joel Nothman