7.1.分类
背景:要预测的y是一个离散值,难以用一个直线去拟合
就像是判断垃圾邮件,判断恶性肿瘤,要么是,要么不是,像这种,y∈{0,1}
但是使用线性回归的话,算法的输出值(假设值)h_θ(x)可能会>1,<0,
对此,我们使用Logistic回归使得预测值0<=h_θ(x)<=1,可以把它看作一个分类算法
7.2.假设陈述
Logistic function:
可以把h_θ(x)理解为对一个输入x,y是1的概率,概率只可能在0到1之间
7.3.决策界限
我们要预测y=1,只需
θ
T
θ^T
θT>=0,预测y=0,只需
θ
T
θ^T
θT<0
如上图,直线
x
1
+
x
2
=
3
x_1+x_2=3
x1+x2=3就是决策界限,将区间分为两半,一侧预测y=0,一侧y=1。
决策边界是假设函数的一个属性,不是数据集的属性。
非线性决策边界:
7.4.代价函数
对于上图这个给定的训练集,我们如何选择,或者说如何拟合参数θ?
我们在线性回归时,使用了这个函数。我们把黑框中的叫Cost function,它表示在预测值是
h
θ
(
x
)
h_θ(x)
hθ(x)时,而实际标签是y的情况下,我们希望学习算法付出的代价。这个代价值就是1/2乘以预测值h和实际观测的y值的差的平方。
但是不能直接用,把
1
/
(
1
+
e
(
−
θ
T
x
)
)
1/(1+e^ {(-θ^Tx)})
1/(1+e(−θTx))代入
h
θ
(
x
)
h_θ(x)
hθ(x),得到Cost function,再代入J(θ),得到的J(θ)是一个非凸函数,有很多局部最小值。用在Logistic regression上的Cost function应该是这个样子:
当y=1时,它的图像大概是这个样子:
看上图,当y=1、h(x)=0时,意味着预测的概率为0,但是它发生了,这个时候的代价函数值是无穷大。
当y=0时,它的图像大概是这个样子:
看上图,当y=0、h(x)=1时,意味着预测的概率为1,但是它没发生,这个时候的代价函数值是无穷大。
通过这个Cost function,整体的代价函数J(θ)会是一个凸函数,没有局部最优解。
7.5.简化代价函数与梯度下降
目标:找一个相对简单的方法来写代价函数,如何使用梯度下降法拟合出逻辑回归的参数。
Cost函数:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
l
o
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
l
o
g
(
1
−
h
θ
(
x
)
)
Cost(h_\theta(x),y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
逻辑回归代价函数:
使用梯度下降法最小化代价函数J(θ):
也就是下图:
线性回归和逻辑回归都是用上图式子,只是逻辑回归的h_θ(x)变了
线性回归:
h
θ
(
x
i
)
=
θ
T
∗
x
h_θ(x^i) = θ ^T*x
hθ(xi)=θT∗x
逻辑回归:
h
θ
(
x
i
)
=
1
/
(
1
+
e
(
−
θ
T
∗
x
)
)
h_θ(x^i) = 1/(1+e ^{(-θ ^T*x)})
hθ(xi)=1/(1+e(−θT∗x))
7.6.高级优化//先跳过去
目标:学习高级优化方法,相比梯度下降法大大提高逻辑回归运行速度。
换个角度看梯度下降法
我们有代价函数J(θ),我们计算出J(θ)和J(θ)的偏导数,带入梯度下降法中,就可以最小化代价函数。
options是可以存储你想要的options的数据结构。
7.6.多元分类:一对多
目标:使用逻辑回归解决多类别分类问题
就像区分天气一样,给各种天气取离散值,如晴天:y=1,阴天:y=2,雨天:y=3等。
一对多分类原理:
假设我们有上图中的三个训练集,我们要把它转换成三个独立的二元分类问题,方法就是对某一个训练集,把剩下两个训练集归为一类,就变成了二元分类问题。如图:
三个逻辑回归分类器分别为
h
θ
1
(
x
)
,
h
θ
2
(
x
)
,
h
θ
3
(
x
)
h_θ ^1(x),h_θ ^2(x),h_θ ^3(x)
hθ1(x),hθ2(x),hθ3(x)
估计对不同的x、θ,y=i的概率,三个分类器分别表示y=1、2、3的概率。
分类:
对一个新的输入x,选择h最大的类别,无论给出什么值的i,h都是最大的,我们就预测y就是那个值。