台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

简介: 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测。本节课将介绍Logistic Regression逻辑回归问题。

一、Logistic Regression Problem

一个心脏病预测的问题:根据患者的年龄、血压、体重等信息,来预测患者是否会有心脏病。很明显这是一个二分类问题,其输出y只有{-1,1}两种情况。

二元分类,一般情况下,理想的目标函数f(x)>0.5,则判断为正类1;若f(x)<0.5,则判断为负类-1。

image.png

但是,如果我们想知道的不是患者有没有心脏病,而是到底患者有多大的几率是心脏病。这表示,我们更关心的是目标函数的值(分布在0,1之间),表示是正类的概率(正类表示是心脏病)。这跟我们原来讨论的二分类问题不太一样,我们把这个问题称为软性二分类问题(’soft’ binary classification)。这个值越接近1,表示正类的可能性越大;越接近0,表示负类的可能性越大。

image.png

如果目标函数是f(x)=P(+1|x)∈[0,1]的话,我们如何找到一个好的Hypothesis跟这个目标函数很接近呢?

首先,根据我们之前的做法,对所有的特征值进行加权处理。计算的结果s,我们称之为’risk score’:image.png

image.png


二、Logistic Regression Error


现在我们将Logistic Regression与之前讲的Linear Classification、Linear Regression做个比较:

image.png

这三个线性模型都会用到线性scoring function image.png。linear classification的误差使用的是0/1 err;linear regression的误差使用的是squared err。那么logistic regression的误差该如何定义呢?

先介绍一下“似然性”的概念。目标函数f(x)=P(+1|x),如果我们找到了hypothesis很接近target function。也就是说,在所有的Hypothesis集合中找到一个hypothesis与target function最接近,能产生同样的数据集D,包含y输出label,则称这个hypothesis是最大似然likelihood。

image.png

因为P(xn)对所有的h来说,都是一样的,所以我们可以忽略它。那么我们可以得到logistic h正比于所有的h(ynx)乘积。我们的目标就是让乘积值最大化。


image.png

image.pngimage.png

三、Gradient of Logistic Regression Error


我们已经推导了Ein的表达式,那接下来的问题就是如何找到合适的向量w,让Ein最小。

image.png

Logistic Regression的Ein是连续、可微、二次可微的凸曲线(开口向上),根据之前Linear Regression的思路,我们只要计算Ein的梯度为零时的w,即为最优解。image.png

image.png

image.pngimage.pngimage.png

image.png

四、Gradient Descent


根据上一小节PLA的思想,迭代优化让每次w都有更新:

image.png

我们把Ein(w)曲线看做是一个山谷的话,要Ein(w)最小,即可比作下山的过程。整个下山过程由两个因素影响:一个是下山的单位方向v另外一个是下山的步长η

image.png

迭代的目的是让Ein越来越小,即让Ein(wt+ηv)

image.png

v是单位向量,v每次都是沿着梯度的反方向走,这种方法称为梯度下降(gradient descent)算法。那么每次迭代公式就可以写成:

image.png

下面讨论一下η的大小对迭代优化的影响:η如果太小的话,那么下降的速度就会很慢;η如果太大的话,那么之前利用Taylor展开的方法就不准了,造成下降很不稳定,甚至会上升。因此,η应该选择合适的值,一种方法是在梯度较小的时候,选择小的η,梯度较大的时候,选择大的η,即η正比于||∇Ein(wt)||。这样保证了能够快速、稳定地得到最小值Ein(w)。

image.png\image.png

image.png

五、总结


我们今天介绍了Logistic Regression。首先,从逻辑回归的问题出发,将P(+1|x)作为目标函数,将image.png作为hypothesis。接着,我们定义了logistic regression的err function,称之为cross-entropy error交叉熵误差。然后,我们计算logistic regression error的梯度,最后,通过梯度下降算法,计算∇Ein(wt)≈0时对应的wt值。


相关文章
|
机器学习/深度学习
Stanford 机器学习练习 Part 2 Logistics Regression
以下是我学习Andrew Ng machine learning 课程时logistic regression的相关代码,仅作为参考,因为是初学,暂时没办法做出总结。
53 1
|
机器学习/深度学习
Stanford 机器学习练习 Part 1 Linear Regression
In octave, we return values by defining which variables % represent the return values (at the top of the file)
56 0
|
4月前
|
机器学习/深度学习 Python
训练集、测试集与验证集:机器学习模型评估的基石
在机器学习中,数据集通常被划分为训练集、验证集和测试集,以评估模型性能并调整参数。训练集用于拟合模型,验证集用于调整超参数和防止过拟合,测试集则用于评估最终模型性能。本文详细介绍了这三个集合的作用,并通过代码示例展示了如何进行数据集的划分。合理的划分有助于提升模型的泛化能力。
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
210 0
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
|
8月前
|
机器学习/深度学习 数据采集 算法
机器学习:升维(Polynomial Regression)
该文介绍了升维的概念,指出在低维度中难以对混合数据进行有效分类,而升维是通过算法将数据投射到高维空间以改善模型性能。文章以多项式回归为例,说明了如何通过升维将非线性关系转换为线性关系,并提供了Python代码示例展示了如何使用`PolynomialFeatures`进行升维。代码结果显示,随着维度增加,模型从欠拟合逐渐过渡到过拟合。
682 0
|
8月前
|
机器学习/深度学习 算法 PyTorch
基于Pytorch的机器学习Regression问题实例(附源码)
基于Pytorch的机器学习Regression问题实例(附源码)
96 1
|
8月前
|
机器学习/深度学习 数据采集 数据可视化
【机器学习】样本、特征、标签:构建智能模型的三大基石
【机器学习】样本、特征、标签:构建智能模型的三大基石
3385 0
|
机器学习/深度学习 算法
瞎聊机器学习——LR(Logistic Regression)逻辑斯蒂回归(一)
瞎聊机器学习——LR(Logistic Regression)逻辑斯蒂回归(一)
瞎聊机器学习——LR(Logistic Regression)逻辑斯蒂回归(一)
|
机器学习/深度学习 资源调度 算法
学习笔记: 机器学习经典算法-逻辑回归(Logistic Regression)
机器学习经典算法-个人笔记和学习心得分享
174 0
|
8月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
261 14