【吴恩达机器学习笔记】第三章 Logistic回归

【吴恩达机器学习笔记】第三章 Logistic回归

Logistic回归虽然叫做回归,但实际上是一种分类算法。

1、假设函数

假设: h θ ( x ) = g ( θ T x ) h_{\theta }(x)=g(\theta ^{T}x) hθ(x)=g(θTx)
Logistic函数(也称sigmoid函数)如下所示: g ( z ) = 1 1 + e − z g\left ( z \right )= \frac{1}{1+e^{-z}} g(z)=1+ez1图像大致为:
在这里插入图片描述
这样可以使 h θ ( x ) h_{\theta }\left ( x \right ) hθ(x)的范围在0到1之间。

h θ ( x ) h_{\theta }\left ( x \right ) hθ(x)的含义用概率来解释为: h θ ( x ) = p ( y = 1 ∣ θ ; x ) h_{\theta }\left ( x \right )=p\left ( y=1|\theta ;x \right ) hθ(x)=p(y=1θ;x)

2、决策界限

如果我们要预测输出的值为0还是为1,我们可以假设:
如果 h θ ( x ) ≥ 0.5 h_{\theta }\left ( x \right )\geq 0.5 hθ(x)0.5,那么 y = 1 y=1 y=1;如果 h θ ( x ) &lt; 0.5 h_{\theta }\left ( x \right )&lt; 0.5 hθ(x)<0.5,那么 y = 0 y=0 y=0

根据Logistic函数图像可以发现, h θ ( x ) ≥ 0.5 h_{\theta }\left ( x \right )\geq 0.5 hθ(x)0.5 时, x ≥ 0 x\geq0 x0 h θ ( x ) &lt; 0.5 h_{\theta }\left ( x \right )&lt;0.5 hθ(x)<0.5 时, x &lt; 0 x&lt;0 x<0

举个例子让我们能更直观的理解,假设有一个数据集如图所示:
在这里插入图片描述
假设函数为 h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_{\theta }\left ( x \right )=g\left ( \theta _{0}+\theta _{1}x_{1}+ \theta _{2}x_{2}\right ) hθ(x)=g(θ0+θ1x1+θ2x2),假设 θ = [ − 3 1 1 ] \theta =\begin{bmatrix} -3\\ 1\\ 1 \end{bmatrix} θ=311
那么当 g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) ≥ 0 g\left ( \theta _{0}+\theta _{1}x_{1}+ \theta _{2}x_{2}\right )\geq0 g(θ0+θ1x1+θ2x2)0,即 − 3 + x 1 + x 2 ≥ 0 -3+x_{1}+x_{2}\geq0 3+x1+x20 时,可以预测 y = 1 y=1 y=1
x 1 + x 2 ≥ 3 x_{1}+x_{2}\geq3 x1+x23的意义是在图中划了一条线,将数据集进行了二分类,如下图所示:
在这里插入图片描述
红线上面的区域为假设函数预测 y = 1 y=1 y=1 的区域,下面为假设函数预测 y = 0 y=0 y=0 的区域,这条红线则被成为决策边界,它对应了一系列 h θ ( x ) = 0.5 h_{\theta }\left ( x \right )=0.5 hθ(x)=0.5 的点
决策边界不是数据集的属性而是假设本身及其参数的属性
如果 θ \theta θ 参数比较复杂,决策边界也会变得更复杂,而不一定是一条直线。

3、代价函数

因为 Logistic函数 g ( z ) = 1 1 + e − z g\left ( z \right )= \frac{1}{1+e^{-z}} g(z)=1+ez1 是非常非线性的,如果将线性回归的代价函数: J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) J\left ( \theta \right )=\frac{1}{m}\sum_{i=1}^{m}Cost(h_{\theta }(x^{(i)}),y^{(i)}) J(θ)=m1i=1mCost(hθ(x(i)),y(i)) C o s t ( h θ ( x ( i ) ) , y ( i ) ) = 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 Cost(h_{\theta }(x^{(i)}),y^{(i)})=\frac{1}{2}(h_{\theta }(x^{(i)})-y^{(i)})^{2} Cost(hθ(x(i)),y(i))=21(hθ(x(i))y(i))2来作为 Logistic回归的代价函数,画出的代价函数图像是非凸函数,如下图所示:
在这里插入图片描述
它有多个局部最优点,如果用梯度下降算法会很容易陷入局部最优解,为了使代价函数能够为凸函数,我们定义 Logistic回归的代价函数如下: C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) i f y = 1 − l o g ( 1 − h θ ( x ) ) i f y = 0 Cost(h_{\theta }(x),y)=\left\{\begin{matrix} -log(h_{\theta }(x))\quad if \quad y=1\\ -log(1-h_{\theta }(x))\quad if \quad y=0 \end{matrix}\right. Cost(hθ(x),y)={log(hθ(x))ify=1log(1hθ(x))ify=0我们画出代价函数图像如下所示:
在这里插入图片描述在这里插入图片描述
为了使代价函数不分段,我们做了简化后得到新的代价函数: 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))(1y)log(1hθ(x))

4、梯度下降算法

我们已经得到 Logistic回归的代价函数如下所示: J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] J(\theta )=-\frac{1}{m}[\sum_{i=1}^{m}y^{(i)}log(h_{\theta }(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta }(x^{(i)}))] J(θ)=m1[i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]我们按照前面所学的梯度下降算法的模板:

repeat: θ j : = θ j − α ∂ ∂ θ j J ( θ ) \quad\theta _{j}:=\theta _{j}-\alpha \frac{\partial }{\partial \theta _{j}}J(\theta ) θj:=θjαθjJ(θ)

带入Logistic回归的代价函数后发现与线性回归的梯度下降算法几乎一样:

repeat: θ j : = θ j − α ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \quad\theta _{j}:=\theta _{j}-\alpha \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{j}^{(i)} θj:=θjαi=1m(hθ(x(i))y(i))xj(i)

不同之处在于:线性回归的 h θ ( x ) h_{\theta }(x) hθ(x) θ T X \theta ^{T}X θTX,而Logistic回归的 h θ ( x ) h_{\theta }(x) hθ(x) 1 1 + e − θ T X \frac{1}{1+e^{-\theta ^{T}X}} 1+eθTX1

同样,在线性回归中的特征缩放在Logistic回归中也同样适用。

5、高级优化算法

举个栗子:假设有 θ = [ θ 1 θ 2 ] \theta =\begin{bmatrix} \theta _{1}\\ \theta _{2} \end{bmatrix} θ=[θ1θ2] J ( θ ) = ( θ 1 − 5 ) 2 + ( θ 2 − 5 ) 2 J(\theta )=(\theta _{1}-5)^{2}+(\theta _{2}-5)^{2} J(θ)=(θ15)2+(θ25)2 ∂ ∂ θ 1 J ( θ ) = 2 ( θ 1 − 5 ) \frac{\partial }{\partial \theta _{1}}J(\theta )=2(\theta _{1}-5) θ1J(θ)=2(θ15) ∂ ∂ θ 2 J ( θ ) = 2 ( θ 2 − 5 ) \frac{\partial }{\partial \theta _{2}}J(\theta )=2(\theta _{2}-5) θ2J(θ)=2(θ25)
则用高级优化算法的MATLAB代码如下所示:

costFunction.m

function [jVal,gradient] = costFunction(theta)
jVal = (theta(1)-5)^2 + (theta(1)-5)^2;
gradient = zeros(2,1);
gradient(1) = 2*(theta(1)-5);
gradient(2) = 2*(theta(2)-5);

main.m

options = optimset('GradObj','on','MaxIter',100);
initialTheta = zeros(2,1);
[optTheta,functionVal,exitFlag]=fminunc(@costFunction,initialTheta,options);

6、多元分类

假设我们有训练集
在这里插入图片描述
我们可以分别拟合出三个分类器如下所示:
在这里插入图片描述
我们得到一个拟合分类器:
h θ ( i ) ( x ) = P ( y = i ∣ x ; θ ) h_{\theta }^{(i)}(x)=P(y=i|x;\theta ) hθ(i)(x)=P(y=ix;θ)
总结:
如果要进行多元分类,我们可以训练一个逻辑回归分类器 h θ ( i ) ( x ) h_{\theta }^{(i)}(x) hθ(i)(x) 预测 i 类别 y = i y=i y=i的概率。
最后为了做出预测,我们给定一个新的输入值 x, 我们要做的就是,在每个分类器运行输入x,然后选择 h h h 最大的类别,也就是要选择分类器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值