> For the complete documentation index, see [llms.txt](https://json007.gitbook.io/svm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://json007.gitbook.io/svm/lr.md).

# Logistic Regression

## 模型的由来

### Exponential model的解释

假设第i个特征对第k类的贡献是$$w\_{ki}$$,则数据点$$(x\_1,\ldots,x\_n)$$属于第k类的概率正比于$$\exp(w\_{k1}x\_i + \ldots + w\_{kn}x\_n)$$。

因为一个数据点属于各类的概率之和为1，所以可以得到$$P(y=k) = \frac {\exp(\sum\_{i=1}^n w\_{ki}x\_i)}{\sum\_k \exp(\sum\_{i=1}^n w\_{ki}x\_i)} = \frac {\exp(W\_k^T X)}{\sum\_k \exp(W\_k^T X)}$$ 。

若只有两类，将分子分母同除分子，则有$$P(Y=1|x) = \frac {1}{1+exp(-w \cdot x)}$$ 。

### bernoulli分布的解释

二项分布，或者bernoulli分布的exponential family形式，就是 $$\frac {1}{1+e^{-z}}$$\
$$p(y|x,w) = Ber(y|sign(W^Tx))$$

### 对数几率比的解释

[Logit](https://en.wikipedia.org/wiki/Logit) [Logistic function](https://en.wikipedia.org/wiki/Logistic_function)

$$
logit(P(y=1|x)) = \log \frac{P(y=1|x)}{P(y=0|x)} = \log \frac{P(y=1|x)}{1-P(y=1|x)} = w \cdot x \\
P(y=1|x) = logit^{-1} (w \cdot x) = \color{Blue}{\frac {1}{1+\exp(-w \cdot x)}} = \frac {\exp(w \cdot x)}{1+\exp(w \cdot x)} \\
P(y=0|x) = 1-P(y=1|x) = \color{Blue}{\frac {1}{1+\exp(w \cdot x)}}
$$

LR本质上是线性回归，只是在特征到的结果的映射中加入了一层函数映射

通过logistic regression模型可以将线性函数转换为概率。线性函数的值越接近正无穷，概率值就越接近1；线性函数的值越接近负无穷，概率值就越接近0。这样的模型就是logistic regression模型。

> 为什么要加log，不直接是几率比？ 如果P是一个分布呢？线性空间？

[对数变换与正态分布](https://zhuanlan.zhihu.com/p/22299448)

## 模型参数估计

模型学习时，可以用**极大似然估计法**估计模型参数

$$
\max\_w L(w) = \prod\_j p^y (1-p)^{(1-y)} \\
$$

如果类别标签为$${-1,1}$$,则极大似然可以改写成

$$
max\_w L(w) = \prod\_j \frac {1}{1+\exp(-y\_j w^T x\_j)} \\
\min\_w -\log L(w) = \sum\_j \log(1+\exp(-y\_j w^T x\_j)) \\
\text{这个形式方便于并行化,比如梯度：} \\
G = \sum\_j \[\frac {1}{1+\exp(-y\_j w^T x\_j)} -1]y\_i x\_i
$$

## logisticRegressionMaxEnt

在自然语言中， 最大熵等价于 logistic regression，是因为特征函数都是二项分布。所以与LR本质上是同分布。

![](https://2270971654-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7DcNFhVrwIk3Tks_pB%2Fsync%2Fcf3caf81ae269c3a7d150ddbd8280b02546f3c1d.png?generation=1589383933826425\&alt=media)\
[logisticRegressionMaxEnt博客版](http://blog.csdn.net/cyh_24/article/details/50359055)

## 点击预估

LR常用来做点击，但看到最近的比赛上效果比较好的有GBDT+LR，GBDT+FM。\
还看到一段话

> Ad Predictor : 这是微软的研究员提出的一种算法， 论文可以参考 Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine。\
> Ad Predictor有几个比较好的特性\
> 它只需要扫瞄一次数据集就可以收敛到最优解，而不是像梯度法或者拟牛顿法那样需要反复迭代数据集。\
> 它不仅仅能预测出一个样本是正样本的概率，而且还可以给出对于这个概率预测值的置信度\
> Ad Predictor很好了，不过它是基于L2正则化的，这样总是让人不能满意。Google在2013年发表了一篇论文（Ad Click Prediction: a View from the Trenches），介绍了一个基于L1正则化的LR优化算法FTRL-Proximal，且又具有上述Ad Predictor的两个优点。\
> [Logistic Regression的几个变种](http://blog.xlvector.net/2014-02/different-logistic-regression/)

待扩展这些知识

## 参考佳文

[CTR预估中GBDT与LR融合方案](http://blog.csdn.net/lilyth_lilyth/article/details/48032119)\
[为什么 LR 模型要使用 sigmoid 函数，背后的数学原理是什么](https://www.zhihu.com/question/35322351)

[数据挖掘模型中的IV和WOE详解](http://blog.csdn.net/kevin7658/article/details/50780391)

[浅谈变量woe与dummy的关系](https://zhuanlan.zhihu.com/p/29316085)

[Ctr 预估之 Calibration](https://zhuanlan.zhihu.com/p/142086309)
