机器学习笔记(9):Logistic回归

2020-03-02  本文已影响0人  链原力

本文来自之前在Udacity上自学机器学习的系列笔记。这是第9篇,介绍了监督学习中的Logistic回归。

Logistic回归
Logistic回归虽然带有回归两字,但它和之前介绍的线性回归模型不一样,因为它主要解决分类问题。它可以解决只有标签为0或者1的分类问题,也可以解决多分类问题。

Logistic回归模型定义为:
h_\theta(x)=g(z)
g(z)=\frac{1}{1+e^{-z}}
其中
z=\theta^Tx

给定训练集,计算出参数\theta

模型解读
h_\theta(x)可以认为是在给定x情况下概率预估,比如说x表示肿瘤的大小。如果y=1,表示肿瘤是良性的。那么

h_\theta(x)=0.7, y=1
这个结果就表示,当给定肿瘤大小为x的情况下,判断其为良性的概率为0.7.

所以
h_\theta(x)=P(y=1 | x; \theta)
即为函数h_\theta在给定x, \thetay=1的概率。

由此还可以得到
P(y=0 |x;\theta) = 1-P(y=1|x;\theta)
P(y=1|x;\theta)=P(y=1|x;\theta)^y(1-P(y=1|x;\theta))^{(1-y)}

决策边界
Logistic回归模型
h_\theta(x)=g(\theta^Tx)=P(y=1|x;\theta)
g(z)=\frac{1}{1+e^{-z}}
可以得到g(z)的函数图像为:

image.png

设定:
h_\theta(x) \geq 0.5时,那么y=1
h_\theta(x) <0.5时,那么y=0

根据上面的设定,我们来看看下面两种情况的数据集。
第一个例子如下图所示,可以假设h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2)
\theta_0=-3, \theta_1=1, \theta_2=1
那么
如果-3+x_1+x_2 \geq 0,可以得到h_\theta(x) \geq 0.5y=1
如果-3+x_1+x_2 < 0,可以得到h_\theta < 0.5y=0

所以x_1+x_2=3直线可以将数据集完美地进行分类。我们称x_1+x_2=3为数据集的决策边界。

image.png

下面的数据集,可以假设h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2)
如果-1+x_1^2+x_2^2\geq 0,可以得到h_\theta(x) \geq 0.5y=1
如果-1+x_2^2+x_2^2<0,可以得到h_\theta < 0.5y=0

所以,数据集的决策边界为x_1^2+x_2^2=1

image.png

损失函数
在上面的决策边界例子中,我们直接设置了\theta值,但我们希望的是给定训练集的情况下,使用算法自动地找到合适的\theta值将数据集正确地分类,得到决策边界。

样本数据一共有m个:(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), \ldots, (x^{(m)}, y^{(m)})x \in R^{n+1},其中x_0=1, x(n+1) \times 1的矩阵,y \in {0,1}
对于h_\theta=\frac{1}{1+e^{-\theta^Tx}},如何选择\theta值呢?
定义损失函数

image.png

这个式子可以简化为
Cost(h_\theta(x), y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))
使用梯度下降法就可以求得使损失函数为最小的\theta的值了。

通过对Cost(h_\theta(x),y)进行求导,可以得到
\frac{\partial Cost}{\partial \omega_i} = (a-y)x_i
其中
a=g(z)=\frac{1}{1+e^{-z}}
代入到\omega的更新式子中,那么有
\omega_i:=\omega_i-\alpha \frac{\partial Cost}{\partial \omega_i}
\omega_i:=\omega_i+\alpha (y-a)x_i

上一篇 下一篇

猜你喜欢

热点阅读