机器学习--逻辑回归
逻辑回归
前情提要:线性回归
关于分类 C l a s s i f i c a t i o n Classification Classification
在逻辑回归中,我们只讨论 y ∈ { 0 , 1 } y\in\{0, 1\} y∈{0,1} 的情况。其中 1 1 1 表示 p o s i t i v e c l a s s positive \; class positiveclass, 0 0 0 表示 n e g a t i v e c l a s s negative \; class negativeclass。
对线性回归进行修改
在线性回归中,我们有 h ( x ) = w T x h(x) = w^Tx h(x)=wTx(这里写的是增加了 x 0 ( i ) x^{(i)}_0 x0(i) 和 w 0 w_0 w0 的),而在逻辑回归中,我们希望 h ( x ) ∈ [ 0 , 1 ] h(x) \in [0, 1] h(x)∈[0,1],而 h ( x ) h(x) h(x) 的值具体代表着 y = 1 y = 1 y=1 的概率,所以我们需要引入一个函数: s i g m o i d f u n c t i o n sigmoid \; function sigmoidfunction,也叫 l o g i s t i c f u n c t i o n logistic \; function logisticfunction:
g ( t ) = 1 1 + e − t g(t) = \frac{1}{1 + e^{-t}} g(t)=1+e−t1
图像长这样:
我们可以看到,这个函数过点 ( 0 , 0.5 ) (0, 0.5) (0,0.5)
我们考虑把 h ( x ) h(x) h(x) 改成这样:
h ( x ( i ) ) = g ( w T x ( i ) ) = P ( y = 1 ∣ x ; w ) h(x^{(i)}) = g(w^Tx^{(i)}) = P(y = 1 | x ; w) h(x(i))=g(wTx(i))=P(y=1∣x;w)
如果我们考虑将概率超过 1 2 \frac 12 21 的归为 y = 1 y = 1 y=1 的一类,并把概率小于 1 2 \frac 12 21 的归为 y = 0 y = 0 y=0 的这一类的话,我们会发现一件事:
- h ( x ( i ) ) > 1 2 h(x^{(i)}) > \frac 12 h(x(i))>21 时 g ( w T x ( i ) ) > 1 2 g(w^Tx^{(i)}) > \frac12 g(wTx(i))>21 又因为 g ( t ) g(t) g(t) 单增且过 ( 0 , 1 2 ) (0, \frac 12) (0,21),所以此时 w T x ( i ) > 0 w^Tx^{(i)} > 0 wTx(i)>0
- h ( x ( i ) ) ≤ 1 2 h(x^{(i)}) \le \frac 12 h(x(i))≤21 时 g ( w T x ( i ) ) ≤ 1 2 g(w^Tx^{(i)}) \le \frac12 g(wTx(i))≤21 又因为 g ( t ) g(t) g(t) 单增且过 ( 0 , 1 2 ) (0, \frac 12) (0,21),所以此时 w T x ( i ) ≤ 0 w^Tx^{(i)} \le 0 wTx(i)≤0
也就是说:
- y被判定为 1 1 1 时 w T x ( i ) > 0 w^Tx^{(i)} > 0 wTx(i)>0
- y被判定为 0 0 0 时 w T x ( i ) ≤ 0 w^Tx^{(i)} \le 0 wTx(i)≤0
而在线性回归中 w T x ( i ) w^Tx^{(i)} wTx(i) 是表示我们拟合出来的那条直线(二维的情况下,一下解释也是二维的情况下,高维就类比就行了)。而并且上过高中的都知道, w T x ( i ) > 0 w^Tx^{(i)} > 0 wTx(i)>0 表示的是这条直线上方的半平面部分,而 w T x ( i ) ≤ 0 w^Tx^{(i)} \le 0 wTx(i)≤0 表示的是这条直线下方的半平面部分。
也就是说,我们用 w T x ( i ) w^Tx^{(i)} wTx(i) 这条直线将平面分成了两部分,一部分中的点是 y = 1 y = 1 y=1 的点,另一部分是 y = 0 y = 0 y=0 的点。
构造 c o s t f u n c t i o n cost \; function costfunction
同样的,我们考虑和线性回归一样构造一个表示差异程度的函数,然后用 G D GD GD 最小化它就解决了,这里,我们有:
c o s t ( x , y ) = { − ln ( h ( x ) ) i f y = 1 − ln ( 1 − h ( x ) ) i f y = 0 cost(x, y) = \left\{ \begin{array}{} -\ln (h(x)) & if \;\; y = 1 \\ -\ln (1 - h(x)) & if \;\; y = 0 \end{array}\right. cost(x,y)={−ln(h(x))−ln(1−h(x))ify=1ify=0
也可以写成:
c o s t ( x , y ) = − [ y ln h ( x ) + ( 1 − y ) ln ( 1 − h ( x ) ) ] cost(x, y) = -\bigg[y\ln h(x) + (1 - y)\ln (1 - h(x))\bigg] cost(x,y)=−[ylnh(x)+(1−y)ln(1−h(x))]
我们来分类讨论一下:
- y = 1 y = 1 y=1 时, h ( x ) → 1 h(x) \rightarrow 1 h(x)→1 时, c o s t cost cost 应该趋近于 0 0 0 且 h ( x ) → 0 h(x) \rightarrow 0 h(x)→0 时, c o s t cost cost 应该很大。而 − ln x -\ln x −lnx 的图像刚好满足这个性质
- y = 0 y = 0 y=0 时, h ( x ) → 0 h(x) \rightarrow 0 h(x)→0 时, c o s t cost cost 应该趋近于 0 0 0 且 h ( x ) → 1 h(x) \rightarrow 1 h(x)→1 时, c o s t cost cost 应该很大。而 − ln ( 1 − x ) -\ln (1-x) −ln(1−x) 的图像刚好满足这个性质
然后我们就有我们的 c o s t f u n c t i o n cost \; function costfunction:
J ( w ) = − ∑ i = 1 m [ y ln h ( x ) + ( 1 − y ) ln ( 1 − h ( x ) ) ] J(w) = -\sum_{i = 1}^m \bigg[y\ln h(x) + (1 - y)\ln (1 - h(x))\bigg] J(w)=−i=1∑m[ylnh(x)+(1−y)ln(1−h(x))]
之后 g d gd gd 就搞定了