3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_一起学习西瓜书2

今天的这两章比较枯燥!线性模型和决策树!其实机器学习说白了就是回归和分类。

机器学习之线性模型

    • 1.一元线性回归模型

    • 2.多元线性回归模型

    • 3.逻辑回归模型(对数几率回归)

    • Logistic回归模型的实践

线性回归也就是可以用一条直线来拟合一个点集。对于常用的逻辑回归模型,利用sklearn机器学习包实现对MNIST公共数据集的简单分类应用。机器学习无非是回归和分类的问题,其目的就是学习一个数学函数,通过该数学函数输入得到输出。线性模型主要有以下三大类,也是本文要总结的三大类,其实只有前两者是用来做回归的,而最后一个是做分类的:

  • 一元线性回归模型(一个自变量和一个因变量)

  • 多元线性回归模型(多个因变量)

  • 对数几率回归模型(逻辑回归模型,用来做分类)

1.一元线性回归模型

这个其实很好理解,直接看西瓜书给出的公式就知道:cb0bba512c28b6d9e1d3351f15fa5eed.png
目的很简单,就是给定样本输入x求解输出f(x),而线性回归模型的主要工作就是学得参数w和b,且使得损失函数最小,也就是说在预测过程中,我们需要使预测值和真实值之间的误差最小。求解参数的主要思路步骤:

  1. 由最小二乘法导出损失函数E(w,b),也就是均方误差最小化求解。损失函数定义如下:

  2. d75e3bd86c0c354bde5e7ff9d76fcf81.png

  3. 证损失函数是凸函数,根据二元函数凹凸性判定定理证明即可,也就是分别求出关于w和b的二阶偏导值,利用AC-B^2>=0来判断其为凸函数。

  4. 分别对w和b求解一阶偏导,并令其为0,解出的w和b就是我们要求得的参数能使得损失函数值最小,由此可以推导出西瓜书的等式:d3c1522349b43a0ff0bb3cc045c78f7e.png04fb4c8e55b6342641d4d22cb3e938da.png

  5. 其实最后一步w参数的向量化目的是方便编程,在实际的应用中,给出的数据样本值x一般是一个序列,向量化有助于python利用矩阵工具计算相应的参数值。

2.多元线性回归模型

多元回归模型的推导思路和一元是一样的,但是不同的是需要把w和b统一为向量的形式(w;b),西瓜书中直接给出了损失函数让人看不懂:33eb1c3cb74162bcf81eb4afd8187af3.png
实际的推导如下*(因为公式不好敲,这里就贴个图片了哈,谅解!!!)*20133dc3e00577880d28795846a7986c.png
现在最关键的一步就是损失函数的求解,求解最小值,这里讲述两种方式,第一种就是和一元的思路差不多,涉及到矩阵的求导和微分(牛顿法/拟牛顿法),第二种也是值得推荐的一种常用的方法,梯度下降法,其不只是使用在一元/多元线性回归上,其它机器学习的模型也常用梯度下降法来优化损失函数,求解最优参数解。现在分别大致描述下两种方法的思路。

1. 西瓜书的思路属于第一种,判断凹凸性,也就是Hessian矩阵正定,则为凸函数。Hessian矩阵其实就是在梯度(一阶偏导数存在) 的类似基础上,求解二阶偏导数存在。推到过程如下:eaf40311bc4db05b768cc63d8b83df46.png2. 梯度下降法它是用迭代的方法求解目标函数得到最优解,是在cost function(成本函数)的基础上,利用梯度迭代求出局部最优解。
对于线性回归模型:4bf0a4588ea9d2ee76c34d55049ff8a8.png
损失函数为:b3b67f952be0b0fd7543719e25036189.png

给一个初始值,使损失函数逐次变小,使每次都往梯度下降的方向改变:e09d3890d5bd2e4fc4e5ddcc545b7fda.png表示下降速度。
为了求偏导数,当只有一个样本时,即ca1dddac7bc4a39e5ab22181b8694a8c.png
当有多个训练样本时,下降梯度算法即为:8399f02a3a8c60f4d398de256f6a0952.png
由于每次迭代都需要计算所有样本的残差并加和,因此此方法也叫做批下降梯度法(batch gradient descent),当有大规模数据时,此方法不太适合,可采取它得一个变种,即每次更新权重时,不是计算所有的样本,而是选取其中一个样本进行计算梯度,这个方法叫做随机下降梯度法(stochastic gradient descent):f00905a54d7b1208e534459b8911c621.png随机下降梯度法与下降梯度法对比可能收敛更快,但是可能找不到最优点而在最优点附近徘徊。

**总结:**线性回归的优点计算简单,容易实现,缺点使无法拟合非线性数据!!!

3.逻辑回归模型(对数几率回归)

Logistic是用来分类的,是一种线性分类器。逻辑回归的表达式可以通过替代函数和广义线性模型来推导,需要记住其表达式为:57baf7afed28779183898dd61c245ab1.png
其导数形式为:5f9fbc673ab8d43241cd3439e3029136.png
logsitc回归方法主要是用极大似然估计来学习的,所以单个样本的后验概率为:80a061b2410eeb94a51758fd05b70b0b.png
所以,整个样本的后验概率为:0a19ea28b1b59d2ada0f5d443d0ae555.png
取对数,得似然函数:5b74481503f97e21c221c65c349985cf.png似然函数取得最大值即为损失函数取得最小值,也可采用梯度下降法求解参数:7daf871d7b17de9a4d0e5e635407221e.png

**总结:**逻辑回归的优点计算简单,分类时计算很快;缺点就是容易欠拟合,准确度不高,只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分。

机器学习之决策树

决策树由一个根节点、若干个内部节点和叶节点构成,其中,叶节点对应决策结果,其他节点(根节点、内部节点)对应属性判断规则。决策树本质上是一层一层地根据条件递归做判断。

决策树既可以应用于分类任务,也可用于回归任务,具体是用于分类任务还是回归任务,主要取决于目标变量的连续性。如果目标变量为离散变量,则为分类;如果目标变量为连续变量,则为回归。

由于对应决策过程易于可视化、可同时应用于分类和回归任务、可处理大规模数据集等优点,决策树至今仍是监督式学习中应用最广泛的模型之一。

决策树究竟是如何做判断的呢?

案例

已知100个人的身高、体重,并且知道其中有60名男性、40名女性。先需要根据词数据集构造决策树,用于仅根据身高和体重两个属性判断是每个人的性别。

根据男女身高和体重的额差异,可能会问这个人的身高是否超过170cm或者体重是否超过60kg。根据上述过程,可以绘制如下图所示的决策树。其中,图1先根据身高判断,图2先根据体重判断。

24f30f6f054a0123c6e93f15d96990cd.png
2e9fc0bc05ef8a8dd637372ab198d0b7.png

以上两种判断过程,哪一种更合理呢?也就是按什么样的特征顺序进行划分,才能找到最纯净的划分(叶节点)?这就是决策树原理中最重要的一个方面:特征属性的重要性,即找出最能区别样本数据集的属性,作为优先判断条件,从而提高决策树的纯度。

01 树的纯度与特征属性重要性

目前,用于衡量树的纯度的方法有三种,纯度的的相反面是不纯度,不纯度越低,即纯度越高。下面是衡量决策树(不)纯度的三种算法。

(1) ID3算法:使用信息增益作为分裂规则;

(2) C4.5算法:使用信息增益率作为分类规则;

(3) CART算法:使用基尼系数作为分裂规则。

1. ID3算法:熵、信息增益

介绍信息增益之前,首先介绍一下熵的概念,这是一个物理学概念,表示“一个系统的混乱程度”。熵越小,系统的不确定性越低,纯度越高。

●2. C4.5算法(信息增益率)

在ID3算法中,显然属性的取值越多,信息增益越大。为了避免属性取值个数的影响, C4.5算法从候选划分中找出信息增益高于平均水平的属性,再从中选出信息增益率(用信息增益除以该属性本身的固有值Intrinsic value)最高的分类作为分裂规则。

●3. 基尼系数

CART(Classification and Regression Tree)算法使用基尼系数作为分裂规则,选择Gini系数减少最快的分裂规则,最小化不纯度。CART算法既可以用分类任务,也可用于回归任务。

数据集D的基尼系数Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小,则数据集D的纯度越高。

决策树主要优缺点:

优点:

1. 可同时用于分类和回归任务,且可以处理多分类问题;

2. 不需要归一化,减少了数据预处理工作;

3. 自动筛选变量,容易解释和可视化决策过程;

4. 适合处理高维度数据。

缺点:

1. 不稳定,泛化性能差;

2. 没有考虑变量之间的相关性,每次筛选都只考虑一个变量;

3. 只能线性分割数据;

4. 本质上是贪婪算法(可能找不到最优的树)。

02 控制树的深度(剪枝)

根据决策树的原理,如果把每一个样本编号,那么将编号作为一个属性,则每个个体都可以独自分为一类,这样本质上相当于没有分类,也不能泛化到其他数据集,也就是常说的过拟合。

为了防止过拟合,需要控制决策树的广度与深度,即对决策树进行剪枝。

剪枝可分为预剪枝和后剪枝:

预剪枝,在对每一个节点包含的样本进行分类前,比较分类前后的测试集预测的精确率(precision=TP/TP+FP,即正确预测为正与全部预测为正的比率)。

预剪枝的优缺点:

优点:使得决策树的部分分支没有展开,降低了过拟合的风险,节省了训练时间;缺点:有可能出现欠拟合。

后剪枝,在完全构建成一个决策树后,在从叶节点开始,从下往上判断是否需要剪掉叶节点,将原来的内部节点变为叶节点。判断的基础仍然为测试集预测的精确率。

后剪枝的优缺点:

优点:欠拟合风险很小,泛化性能也较高;

缺点:训练时间比预剪枝长。

经过特征重要性选择和树的剪枝,我们基本可以得到一颗效果不错的决策树了。但一颗决策树虽然易于可视化和讲给老板和同事听,但准确度并不一定是最高的。为了提高决策树的精确度,可以用多棵树共同判断,即随机森林

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值