Python中的有界逻辑回归
Posted
技术标签:
【中文标题】Python中的有界逻辑回归【英文标题】:Bounded logistic regression in Python 【发布时间】:2019-06-24 16:17:02 【问题描述】:scikit-learn 中的standard logistic regression solver 假设回归方程:
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
?是否有任何脚本能够处理我修改后的逻辑回归方程?
【问题讨论】:
我认为,您应该使用 numpy 编写所需的方程,然后在训练模型时通过了解逻辑回归的工作原理来使用它。 通过减去c
来标准化您的数据集并通过除以a
来缩放目标会更容易。 IE。 X[k] -=c
和 Y /= a
.
如果事先知道 a 和 c,我可以这样做。但它们是求解器在尝试拟合数据时需要包含的变量...
【参考方案1】:
不清楚你需要什么,但是
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))
所以用exp(1/bk)
替换c
【讨论】:
感谢您的回答,但我错过了一个括号(对不起,很想在这里看到 LaTeX 公式:),并且 (Xk-c) 实际上在指数中。我正在logistic.py 中寻找一个mod 来解决这个稍微修改过的逻辑回归方程以上是关于Python中的有界逻辑回归的主要内容,如果未能解决你的问题,请参考以下文章