逻辑回归
针对二分类问题,若X是特征集合,Y是类别标签(0,1),假设Y的取值服从伯努利分布,即
\(P(Y=0|X)=1-p\)
\(P(Y=1|X)=p\)
再假设p是可以由已知的特征集合X预测的,令(式2)
\[p=\frac{1}{1+e^{-{\theta}^{T} x}}=h_{\theta}(x)\]
因此,只要求得\(\theta\),对一个新的样本点,就可以算出\(p\),然后取\(p\)取值较大的那个类别,就得到了分类的结果。那么这个\(\theta\)怎么求呢?
将式2代入式1,有
\(P(Y=0|X)=1-h_{\theta}(x)\)
\(P(Y=1|X)=h_{\theta}(x)\)
或
\(P(y|x;\theta)=[h_{\theta}(x)]^{y}[1-h_{\theta}(x)]^{1-y}\)
问题就转化为了伯努利分布的参数估计,这里可以应用极大似然法估计,得到似然函数为
\[L(\theta)=\prod_{i=1}^{N}{[h_{\theta}(x)]^{y_i}[1-h_{\theta}(x)]^{1-y_i}}\]
如果要使用《机器学习实战》里说的梯度上升法,就要求得似然函数取得极大值时\(\theta\)的取值,而梯度下降法,就是把负似然函数看成机器学习中常说的损失函数,使得负似然函数最小化。
取对数似然函数
\[ln(L(\theta))=\sum_{i=1}^{N}[{y^{(i)}ln(h_{\theta}(x^{(i)}))}+(1-y^{(i)})ln(1-h_{\theta}{(x^{(i)})})]\]
为了求得对数似然函数的极大值,有
\(\frac{\partial(ln(L(\theta))) }{\theta_j}=\sum_{i}^{N}[y^{(i)}\frac{1}{h_{\theta}{(x^{(i)})}}\frac{\partial{h_{\theta}{(x^{(i)})}}}{\theta_j}+(1-y^{(i)})\frac{1}{1-h_{\theta}{(x^{(i)})}}\frac{\partial{h_{\theta}{x^{(i)}}}}{\partial{\theta_j}}]\)
\(=\sum_{i=1}^{N}[y^{(i)}\frac{1}{h_{\theta}{(x^{(i)})}}+(1-y^{(i)})\frac{1}{1-h_\theta{(x_i)}}]\frac{\partial{h_{\theta}{(x^{(i)})}}}{\partial{\theta_j}}\)
\(=\sum_{i=1}^{N}[y^{(i)}\frac{1}{h_{\theta}{(x^{(i)})}}+(1-y^{(i)})\frac{1}{1-h_\theta{x^{(i)}}}]h_\theta{(x^{(i)})}(1-h_\theta{(x_i)})x_j^{(i)}\)
\(=\sum_{i=1}^{N}[y^{(i)}-h_\theta{(x^{(i)})}]x_j^{(i)}\)
由此便得到了\(\theta\)的更新公式
\[\theta_j:=\theta_j+\alpha\sum_{i=1}^{N}[y^{(i)}-h_\theta{(x^{(i)})}]x_j^{(i)}\]