机器学习:Logstic回归

一、分类

如果某个问题的解可以分为几个离散的值,则称这种问题为分类问题。如果只有0或1两种解,则称为一个二元分类问题,其中0称为负类,1称为正类,由于二元分类问题比较简单,下面都以二元分类问题为例,最后会介绍多元分类问题。分类问题如果采取线性回归的方式去拟合,会得到很差的结果。如下图,假设我们按照 的值来分类,小于0.5的为负类,否则为正类。此时,如果训练样本中有一个很远的正类(最右边的×),那么可能的拟合结果为蓝色的线,这样会有很多样本被错误分类。且线性回归的假设函数 取值可能大于1或者小于0,与分类的离散型取值不符合。

image-20211020163811044

二、假设函数

在线性回归中,我们的假设函数为 ,为了使得假设函数的取值介于 之间,我们设假设函数为 ,其中 称为Logistic函数,也称为Sigmoid函数,其函数图像如下,无穷大时分别趋近于1和0。于是,,称这种假设函数对应的回归为Logistic回归。

image-20211020165319310

现在来解释一下,Logistic回归中,假设函数的含义: ,即在模型参数 下, 成立的条件下, 取值为x 的概率。

三、决策边界

已经有了假设函数了,现在考虑什么时候将某个样本预测为正类,什么时候预测为负类。由于 表示在模型参数 下, 成立的条件下, 取值为x 的概率,所以,显而易见地,当 时,我们预测为正类,否则为负类,当然 时归为正类和负类都可以,这里归为正类,观察logistic函数图像,我们可以得知,当

如下图所示的训练集,假设我们用 进行拟合,我们可以发现如果预测 ,则 ,画出这条线(图中红色的直线),则这条线上方的都被预测为正类,下方的都被预测为负类,这条线就被称为决策边界,决策边界属于假设函数的一个属性,只由模型参数决定,与数据集无关。

image-20211020172913368

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

image-20211020173707776

四、代价函数

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

image-20211020174425730

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

image-20211020175256014

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

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

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

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

对于上面的代价函数,我们可以将其合并成一个式子: ,于是 ​,我们的目的就是找到一组解最小化 ​ 。

根据梯度下降法的思想,对于​ ,我们每一次将其更新为 ​,代入 ​ ,对于每个 ​ 求偏导数,得到:​,这个式子和线性回归中的梯度下降是一样的,区别在于,这里的​​,同样这里的更新也是需要同时更新的,可以用向量化一步搞定。

六、高级优化

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

image-20211024104242847

七、多元分类问题

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

image-20211024104812840

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

 

八、正则化

8.1 过拟合问题

image-20211025142501346

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

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

image-20211025142953963

解决方法:

  1. 减少属性的数量。

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

8.2 正则化的代价函数

image-20211025144545665

如上图,如果采用高阶函数拟合数据会发生过拟合的问题,正则化的思路时将不重要的属性加入一定的惩罚,如下面的式子所示,如果属性3和属性4不重要,则在代价函数后面加上 这两项,那么在训练的时候,为了使得代价函数变小,那么 的值就会变得很小,这样最终的函数就会变得平滑,趋近于一个二次函数。

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

,其中 称为正则化参数。当然,如果​ 过大,会使得函数图形最后变成一条直线,出现欠拟合的问题。注意一般情况下, 是不加惩罚的,因为这是偏置参数。

8.3 线性回归的正则化

8.3.1 梯度下降法

image-20211025150805201

就是将代价函数 : 分别求偏导,得到每次模型参数的更新值。

8.3.2 正规方程法

image-20211025151331891

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

8.4 Logistic回归的正则化

8.4.1 梯度下降

image-20211025151927411

 

求导。

8.4.2 高级优化函数

image-20211025152144767

评论

  1. 66666
    Windows Firefox
    2 年前
    2021-10-25 10:57:02

    66666

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇