前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习:Logstic回归

机器学习:Logstic回归

作者头像
Here_SDUT
发布2022-09-19 10:40:24
7080
发布2022-09-19 10:40:24
举报
文章被收录于专栏:机器学习炼丹之旅

一、分类

如果某个问题的解可以分为几个离散的值,则称这种问题为分类问题。如果只有0或1两种解,则称为一个二元分类问题,其中0称为负类,1称为正类,由于二元分类问题比较简单,下面都以二元分类问题为例,最后会介绍多元分类问题。分类问题如果采取线性回归的方式去拟合,会得到很差的结果。如下图,假设我们按照

h_{\theta}(x)

的值来分类,小于0.5的为负类,否则为正类。此时,如果训练样本中有一个很远的正类(最右边的×),那么可能的拟合结果为蓝色的线,这样会有很多样本被错误分类。且线性回归的假设函数

h_{\theta}(x)

取值可能大于1或者小于0,与分类的离散型取值不符合。

image-20211020163811044
image-20211020163811044

二、假设函数

在线性回归中,我们的假设函数为

h_{\theta}(x) = \theta^Tx

,为了使得假设函数的取值介于

[0,1]

之间,我们设假设函数为

h_{\theta}(x) = \theta^Tx

,其中

g(z) = \frac{1}{1+e^{-z}}

g(z)

称为Logistic函数,也称为Sigmoid函数,其函数图像如下,无穷大时分别趋近于1和0。于是,

h_{\theta}(x) = \frac{1}{1+e^{-\theta^Tx}}

,称这种假设函数对应的回归为Logistic回归。

image-20211020165319310
image-20211020165319310

现在来解释一下,Logistic回归中,假设函数的含义:

h_{\theta}(x) = P(y=1|x;\theta)

,即在模型参数

\theta

下,

x

成立的条件下,

y

取值为x 的概率。

三、决策边界

已经有了假设函数了,现在考虑什么时候将某个样本预测为正类,什么时候预测为负类。由于

h_{\theta}(x)

表示在模型参数

\theta

下,

x

成立的条件下,

y

取值为x 的概率,所以,显而易见地,当

h_{\theta}(x)\ge0.5

时,我们预测为正类,否则为负类,当然

h_{\theta}(x) = 0.5

时归为正类和负类都可以,这里归为正类,观察logistic函数图像,我们可以得知,当

z = \theta^Tx\ge0

g(z) \ge 0.5

如下图所示的训练集,假设我们用

\theta^T = [-3,1,1]

进行拟合,我们可以发现如果预测

y = 1

,则

-3 + x_1 + x_2 \ge0

,画出这条线(图中红色的直线),则这条线上方的都被预测为正类,下方的都被预测为负类,这条线就被称为决策边界,决策边界属于假设函数的一个属性,只由模型参数决定,与数据集无关。

image-20211020172913368
image-20211020172913368

类似于线性回归中,可以在特征中添加额外的高次多项式项达到拟合非线性数据的目的,在Logistic回归中,也有这样的操作:

image-20211020173707776
image-20211020173707776

四、代价函数

如果使用线性回归中的代价函数,由于假设函数的改变,会使得代价函数变成一个非凸函数(如下图左,有很多局部最优解),这样就不能用梯度下降法了,所以我们需要设法将函数转变为一个凸函数。

image-20211020174425730
image-20211020174425730

定义:

Cost(h_{\theta}(x),y) = \left\{ \begin{aligned} -log(h_{\theta}(x))\ \ if \ \ y = 1\\ -log(1-h_{\theta}(x)) \ \ if \ \ y = 0 \end{aligned} \right.

,其函数图形(y=1时)如下:

image-20211020175256014
image-20211020175256014

通过图像我们可以发现一下两个性质:

  • 如果预测值为1的概率为100%,且实际值为1时,代价为0
  • 如果预测值为1的概率小于100%,且实际值为1时,预测的概率越小,代价越大,如果概率为0则代价变成无穷大。

y = 0的图像类似,镜像翻转就是,不做分析。

五、简化代价函数和梯度下降

对于上面的代价函数,我们可以将其合并成一个式子:

Cost(h_{\theta}(x,y)) = -ylog(h_{\theta}(x)) - (1-y)log(1-h_{\theta}(x))

,于是

J_{\theta} = -\frac{1}{m}[\displaystyle\sum_{i=1}^m y^{(i)}log(h_{\theta}(x^{(i)})) + (1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]

​,我们的目的就是找到一组解最小化

J_{\theta}

​ 。

根据梯度下降法的思想,对于

\theta_j

​ ,我们每一次将其更新为

\theta_j := \theta_j - \alpha \frac{\partial}{\partial\theta_j}J(\theta)

​,代入

J_{\theta}

​ ,对于每个

\theta_j

​ 求偏导数,得到:

\theta_j :=\theta_j - \alpha\frac{1}{m}\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)}) - y^{(i)})x_j^{(i)}

​,这个式子和线性回归中的梯度下降是一样的,区别在于,这里的

h_{\theta}(x) = \frac{1}{1+e^{-\theta^Tx}}

​​,同样这里的更新也是需要同时更新的,可以用向量化一步搞定。

六、高级优化

可以使用Matlab库中自带的优化版梯度下降进行计算,函数入下

image-20211024104242847
image-20211024104242847

七、多元分类问题

介绍完二元分类问题,现在来看多元分类问题。

image-20211024104812840
image-20211024104812840

假设我们的训练集中有三种物品,我们可以训练三个分类器如右图,分别将其中的一类当正类,其他都当负类,然后进行一次二元分类。计算完三个分类器后,在预测时,向三个分类器中输入一个数据,将会分别返回三个概率,选择概率最大的那个当做预测类别。

八、正则化

8.1 过拟合问题

image-20211025142501346
image-20211025142501346

还是以房价预测为例,如果用线性函数拟合,会出现如上图左的情况,发生欠拟合、高偏差;如果使用更高阶的函数,图像可以非常好的拟合数据(上图右),但是很明显这并不符合生活常识,称之为过拟合、高方差。即,当出现太多的属性时,训练出的假设可能非常好的训练集,但是不能很好的预测新样本数据,即不能很好的泛化新数据。

对于Logistic 回归 ,也会出现过拟合的现象:

image-20211025142953963
image-20211025142953963

解决方法:

  1. 减少属性的数量。
    • 手动选择需要保留的属性
    • 模型选择算法
  2. 正则化。

8.2 正则化的代价函数

image-20211025144545665
image-20211025144545665

如上图,如果采用高阶函数拟合数据会发生过拟合的问题,正则化的思路时将不重要的属性加入一定的惩罚,如下面的式子所示,如果属性3和属性4不重要,则在代价函数后面加上

+1000\theta_3^2 + 1000\theta_4^2

这两项,那么在训练的时候,为了使得代价函数变小,那么

\theta_3

\theta_4

的值就会变得很小,这样最终的函数就会变得平滑,趋近于一个二次函数。

如果不知道如何选取属性,可以将所有属性都加上惩罚,则代价函数入下:

J(\theta)=\frac{1}{2m}[\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)}) - y^{(i)})^2+\lambda\displaystyle\sum_{i=1}^m\theta_j^2]

,其中

\lambda

称为正则化参数。当然,如果

\lambda

​ 过大,会使得函数图形最后变成一条直线,出现欠拟合的问题。注意一般情况下,

\theta_0

是不加惩罚的,因为这是偏置参数。

8.3 线性回归的正则化

8.3.1 梯度下降法

image-20211025150805201
image-20211025150805201

就是将代价函数 :

J(\theta)=\frac{1}{2m}[\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)}) - y^{(i)})^2+\lambda\displaystyle\sum_{i=1}^m\theta_j^2]

分别求偏导,得到每次模型参数的更新值。

8.3.2 正规方程法

image-20211025151331891
image-20211025151331891

同时,当

\lambda > 0

时,保证矩阵可逆,一定程度上也解决了矩阵不可逆的情况。

8.4 Logistic回归的正则化

8.4.1 梯度下降

image-20211025151927411
image-20211025151927411

J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( {{h}_{\theta }}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{{h}_{\theta }}\left( {{x}^{(i)}} \right) \right)]}+\frac{\lambda }{2m}\sum\limits_{j=1}^{n}{\theta _{j}^{2}}

求导。

8.4.2 高级优化函数

image-20211025152144767
image-20211025152144767
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、分类
  • 二、假设函数
  • 三、决策边界
  • 四、代价函数
  • 五、简化代价函数和梯度下降
  • 六、高级优化
  • 七、多元分类问题
  • 八、正则化
    • 8.1 过拟合问题
      • 8.2 正则化的代价函数
        • 8.3 线性回归的正则化
          • 8.3.1 梯度下降法
          • 8.3.2 正规方程法
        • 8.4 Logistic回归的正则化
          • 8.4.1 梯度下降
          • 8.4.2 高级优化函数
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档