1、提出问题
比如
- 问题1,在信用评分模型中,如何判断某个人的违约概率
- 问题2,在图像识别领域,如何判断一张图片的动物是不是猫
- 问题3,给定某个人的体重、年龄,判断其体脂高低
- 问题4,在物品详情页,线上一个用户点击进来了,如何给出推荐列表,即找到ta最可能点击哪些商品。CTR
- 问题5,通过一个人的年龄、性别、血压、胆固醇水平、体重等,想知道这个人患心脏病的概率
- …等等
先给出整个推导的流程图:倒推的思路
以问题3为例:已收集到样本(X,Y)
- X=(x1,x2,x3,...,xn)X=(x_1, x_2, x_3, ..., x_n)X=(x1,x2,x3,...,xn)
- Y=(y1,y2,y3,...,yn),yi∈(0或1)Y=(y_1, y_2, y_3, ..., y_n), y_i\in(0或1)Y=(y1,y2,y3,...,yn),yi∈(0或1)
- w=(w1,w2,w3,...,wn)w=(w_1, w_2, w_3, ..., w_n)w=(w1,w2,w3,...,wn) 是XXX的权重值
现在给一个人的体重(weight)、年龄(age),如何判断其体脂高低?
我们需要得到一个预测函数 s(XTw)s(X^Tw)s(XTw)(线性模型),在输入样本XXX过程中,不断尝试不同的www(学习过程),输出样本:
- Y=1Y=1Y=1的概率为ppp(Y=0Y=0Y=0的概率为1−p1-p1−p),从而判断这个人体脂高低:
- s≥0.5s≥0.5s≥0.5,体脂高,正样本,标记为1;
- s<0.5s<0.5s<0.5,体脂低,负样本,标记为0;
得出:p=s(XTw)p=s(X^Tw)p=s(XTw)
一个事情(如体脂【高】或者【低】
)发生的概率ppp和影响这个事情发生的因素(如身高、年龄
)之间存在一种关系。
2、现在的问题是:s(XTw)s(X^Tw)s(XTw)是什么?
换个思路,得到s(x)s(x)s(x)的反函数h(x)h(x)h(x),于是:
XTw=h(p)X^Tw=h(p)XTw=h(p)
如果知道了h(p)h(p)h(p),那么,s(XTw)s(X^Tw)s(XTw)就很容易得到了。
3、现在的问题变为:h(p)h(p)h(p)怎么得到?
我们需要的h(p)h(p)h(p)函数是这样的:
- h(p)h(p)h(p)是一个p∈(0,1)p\in(0,1)p∈(0,1)之间变化一个函数。
- h(p)h(p)h(p)是一个在p=0p=0p=0或p=1p=1p=1附近,ppp的微小变化,对应h(p)h(p)h(p)(即XTwX^TwXTw)的较大变化;同时h(p)h(p)h(p)要足够简单。
于是,从h(p)h(p)h(p)变化入手,想到了求导,寻找到一个符合要求的函数:
d(h(p))d(p)=11−p+1p\frac{d(h(p))}{d(p)}=\frac{1}{1-p}+\frac{1}{p}d(p)d(h(p))=1−p1+p1
这个式子11−p+1p\frac{1}{1-p}+\frac{1}{p}1−p1+p1就在p=0p=0p=0或p=1p=1p=1附近,数值是接近于∞\infty∞,也就是变化很大。那么对上述式子积分(即知道了函数的导函数,反求原函数)得到:
h(p)=lnp1−ph(p)=\ln\frac{p}{1-p}h(p)=ln1−pp
附(uv)′=u′v−uv′v2(\frac{u}{v})^′=\frac{u^′v-uv^′}{v^2}(vu)′=v2u′v−uv′
根据上述的h(p)=XTwh(p)=X^Twh(p)=XTw,因此:
lnp1−p=XTw⇒p1−p=eXTw⇒p=eXTw1+eXTw=11+e−XTw\ln\frac{p}{1-p}=X^Tw \Rightarrow \frac{p}{1-p}=e^{X^Tw} \Rightarrow p=\frac{e^{X^Tw}}{1+e^{X^Tw}} = \frac{1}{1+e^{-X^Tw}}ln1−pp=XTw⇒1−pp=eXTw⇒p=1+eXTweXTw=1+e−XTw1
即结论是:p=11+e−XTw=s(XTw)p = \frac{1}{1+e^{-X^Tw}}=s(X^Tw)p=1+e−XTw1=s(XTw)
得到最终的Logistic函数为:
s(x)=11+e−x∈(0,1),x∈(−∞,+∞)s(x)=\frac{1}{1+e^{-x}} \in (0, 1), x \in (-\infty, +\infty)s(x)=1+e−x1∈(0,1),x∈(−∞,+∞)
总结:
上述函数s(x)=11+e−x∈(0,1),x∈(−∞,+∞)s(x)=\frac{1}{1+e^{-x}} \in (0, 1), x \in (-\infty, +\infty)s(x)=1+e−x1∈(0,1),x∈(−∞,+∞)称之为Logistic函数(或 Sigmoid函数),用于二元分类(任务)中,输出事件概率:即 当输出满足某一个概率条件时,我们就将其划分为正或负样本。
是机器学习中一个常用的函数,与之类似的有softmax、softplus等函数。最早可追溯到1844年,一个比利时的数学家用于模仿一些情况人口增长的S形曲线,除了应用人类学,还可应用于数学、动物学、机器学习领域。
使用Logistic函数 很容易将预测值 分为两类:
- 将预测概率小于0.5的分为负样本,标记为0;
- 将预测概率大于0.5的分为正样本,标记为1。
而Sigmoid函数对输入超出一定范围就会不敏感(从图像可知xxx趋向于正负无穷大时)。
所以,Logistic Regression最常见的应用场景是:预测概率。
从【国内】翻译角度理解(不推荐):Logistic Regression
Logistic Regression(简写 LR),逻辑回归 或逻辑斯蒂回归。
从单词(词根)的角度
logistic adj.逻辑的;n.数理(符号)逻辑,逻辑斯蒂
↓
logic 译为 n.逻辑 adj.逻辑的,这词是个舶来品,是音译
在本文的【逻辑回归算法】中的【逻辑】不是中文常说的【逻辑思维】这种逻辑。或译成:逻辑斯蒂回归。以避免误导性。
logistic指的是 logistic函数
-------------------------------------------------------------
regression = re + gress + sion
↓ ↓ ↓
回/向后/相反 | to go/walk行走,来自拉丁语 | 名词后缀
=>翻译:向后走
根据上述推导过程,最准确的翻译应该是:对数几率回归