机器学习中【回归算法】详解

机器学习中【回归算法】详解关注微信公众号【Microstrong】,我写过四年Android代码,了解前端、熟悉后台,现在研究方向是机器学习、深度学习!一起来学习,一起来进步,一起来交流吧!本文同步更新在我的微信公众号里,地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&mid=2247483935&idx=1&sn=5e1c55c76…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

关注微信公众号【Microstrong】,我写过四年Android代码,了解前端、熟悉后台,现在研究方向是机器学习、深度学习!一起来学习,一起来进步,一起来交流吧!

机器学习中【回归算法】详解

本文同步更新在我的微信公众号里,地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&mid=2247483935&idx=1&sn=5e1c55c764ae3443734b3d6d13a110e9&chksm=ec65339adb12ba8ceb875f2dffd29723d975a61ab9af127b4e00e708f177da4abe4ff2e88a96#rd

 

回归问题:主要用于预测数值型数据,典型的回归例子:数据拟合曲线。

 

一、线性回归

 

(1)线性回归的定义:

 

线性回归需要一个线性模型,属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数是否足够拟合训练集数据,然后挑选出最好的线性函数。

需要注意两点:

A.因为是线性回归,所以学习到的函数为线性函数,即直线函数;

B.因为是单变量,因此只有一个x;(这里我们只讨论单变量线性回归)

 

(2)单变量线性回归模型

 

我们能够给出单变量线性回归模型:

 

机器学习中【回归算法】详解

 

这里,X为特征,h(x)为hypothesis。

举个例子:

我们想要根据房子的大小,预测房子的价格,给定如下数据集:

 

机器学习中【回归算法】详解

我们根据以上的数据集画在图上,如下图所示:

 

机器学习中【回归算法】详解

我们需要根据这些点拟合出一条直线,使得costFunction最小。拟合出的直线大概如下图所示:

 

 

机器学习中【回归算法】详解

从上面的过程中,我们肯定有一个疑问,怎么样能够看出线性函数拟合的好不好呢?

答案是我们需要使用到Cost Function(代价函数),代价函数越小,说明我们线性回归的越好,和训练数据拟合的越好。(有关代价函数还请读者自行学习)

 

二、逻辑回归(Logistic Regression)

 

 

逻辑回归虽然名字中有“回归”,但实际却是一种分类学习方法,它将数据拟合到一个logit函数或者是logistic函数中,从而能够完成对事件发生的概率进行预测。

 

 (1)逻辑回归出现的背景:

 

线性回归能对连续值结果进行预测,而现实生活中常见的另一类问题是分类问题。最简单的情况是:是与否的二分类问题。比如说:医生需要需要判断病人是否患癌症,银行要判断一个人的信用程度是否达到可以给他发信用卡的程度,邮件收件箱要自动对邮件分类为正常邮件和垃圾邮件等等。

 

当然,我们最直接的想法是,既然能够用线性回归预测出连续值的结果,那根据结果设定一个阈值应该可以结果分类问题。事实上,对于很标准的情况,确定是可以的,这里我们套用Andrew Ng老师的课件中的例子,下图中X为数据点肿瘤的大小,Y为观测结果是否是恶性肿瘤。通过构建线性回归模型,如机器学习中【回归算法】详解所示,构建线性回归模型后,我们设定一个阈值0.5,预测机器学习中【回归算法】详解>=0.5的这些点为恶性肿瘤,而机器学习中【回归算法】详解<0.5为良性肿瘤。下图是我们构建的一个线性回归模型,可以很好的把恶性肿瘤和良性肿瘤分隔开。

机器学习中【回归算法】详解

 

 

但是在很多实际的情况下,我们需要学习的分类数据并没有这么准确,比如说上面这个肿瘤的例子,如果突然有一个噪点数据出现,如下图所示:

 

机器学习中【回归算法】详解

那我们的线性逻辑回归模型,就不那么适用了并且你设定的阈值0.5也就失效了,如下图所示。而在现实生活分类问题的数据中,会比例子中的这个更为复杂,这个时候我们借助线性回归和阈值的方式,已经很难完成一个表现良好的分类器了。

 

机器学习中【回归算法】详解

 

在这样的场景下,逻辑回归就诞生了。它的核心思想是,如果线性回归的结果输出是一个连续值,而值的范围是无法限定的,那么我们有没有办法把这个结果映射为可以帮助我们判断的结果呢。而如果输出的结果是(0,1)的一个概率值,那么这个问题就能很清楚的解决了。

 

(2)逻辑回归基本的知识点:

 

 

Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:

 

机器学习中【回归算法】详解

 

我们来画出sigmoid函数图像,如下图所示:

 

机器学习中【回归算法】详解

 从函数图上可以看出,函数y=g(z)在z=0的时候取值为1/2,而随着z逐渐变小,函数值趋于0,z逐渐变大的同时函数值逐渐趋于1,而这正是一个概率的范围。所以我们定义线性回归的预测函数为Y=WTX,那么逻辑回归的输出Y= g(WTX),其中y=g(z)函数正是上述sigmoid函数(或者简单叫做S形函数)。这就是逻辑回归中的预测输出函数。

 

有了预测输出函数,我们考虑一下,为什么逻辑回归就能做到分类问题?其实是逻辑回归根据我们的样本点获得这些数据的判定边界。那什么是判定边界呢?你可以简单理解为是用以对不同类别的数据分割的边界,边界的两旁应该是不同类别的数据。我们在二维直角坐标系中,来看看具体的判定边界是什么样子:

可能是这个样子:

 

机器学习中【回归算法】详解

还可能是这个样子:

机器学习中【回归算法】详解

或者是这个样子:

机器学习中【回归算法】详解

 

我们来思考一个问题:逻辑回归是如何根据样本点获得这些判定边界呢?

根据sigmoid函数,我们发现:

当g(z)≥0.5时, z≥0;对于机器学习中【回归算法】详解=g(θTX)≥0.5, 则θTX≥0, 此时意味着预估y=1;

反之,当预测y = 0时,θTX<0;所以我们认为θTX=0是一个决策边界,当它大于0或小于0时,逻辑回归模型分别预测不同的分类结果。

 

先看第一个例子

机器学习中【回归算法】详解,其中θ0 ,θ1 ,θ2分别取-3, 1, 1。则当−3+X1+X2≥0时, y = 1; 则X1+X2=3是一个决策边界,图形表示如下,刚好把图上的两类点区分开来:

机器学习中【回归算法】详解

上边的例子是一个线性的决策边界,当hθ(x)更复杂的时候,我们可以得到非线性的决策边界,例如:

 

机器学习中【回归算法】详解

这时当x12+x22≥1时,我们判定y=1,这时的决策边界是一个圆形,如下图所示:

 

机器学习中【回归算法】详解

 

所以我们发现,理论上说,只要我们的机器学习中【回归算法】详解设计足够合理,准确的说是g(θTX)中θTX足够复杂,我们能在不同的情形下,拟合出不同的判定边界,从而把不同的样本点分隔开来。

判定边界详细介绍和项目实践例子:

线性判定Python实践例子  地址:http://blog.csdn.net/program_developer/article/details/79163466

非线性判定边界Python实践例子 地址:http://blog.csdn.net/program_developer/article/details/79190616 

 

(3)逻辑回归的代价函数机器学习中【回归算法】详解

 

对于线性边界的情况,边界形式如下:

 

机器学习中【回归算法】详解

构造预测函数为:

机器学习中【回归算法】详解

函数机器学习中【回归算法】详解的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:

 

机器学习中【回归算法】详解

下面我们根据(1)式,推导出我们的代价函数机器学习中【回归算法】详解

(1)式综合起来可以写成:

 

机器学习中【回归算法】详解

然后取似然函数为:

机器学习中【回归算法】详解

因为机器学习中【回归算法】详解机器学习中【回归算法】详解在同一θ处取得极值,因此我们接着取对数似然函数为:

 

机器学习中【回归算法】详解

交叉熵代价函数(cross-entropy)

最大似然估计就是求使机器学习中【回归算法】详解取最大值时的θ,其实这里可以使用梯度上升法求解,求得的θ就是要求的最佳参数。但是,在Andrew Ng的课程中将机器学习中【回归算法】详解取为下式,即:

 

机器学习中【回归算法】详解

因为乘了一个负的系数-1/m,所以取机器学习中【回归算法】详解最小值时的θ为要求的最佳参数。

 

我们在来看看,梯度下降法求的最小值θ更新过程:

 

机器学习中【回归算法】详解

 

最终θ更新过程可以写成:

 

机器学习中【回归算法】详解

补充知识点: 

机器学习中【回归算法】详解

三、总结

至此,我们把机器学习中的回归算法知识点进行了一个总结。我们再来总结一下线性回归和逻辑回归的区别和联系:

(1)Linear Regression: 输出一个标量 wx+b,这个值是连续值,所以可以用来处理回归问题。

(2)Logistic Regression:把上面的 wx+b 通过 sigmoid函数映射到(0,1)上,并划分一个阈值,大于阈值的分为一类,小于等于分为另一类,可以用来处理二分类问题。

(3)更进一步:对于N分类问题,则是先得到N组w值不同的 wx+b,然后归一化,比如用 softmax函数,最后变成N个类上的概率,可以处理多分类问题。

Reference:

http://blog.csdn.net/han_xiaoyang/article/details/49123419

http://blog.csdn.net/pakko/article/details/37878837

分类与回归区别是什么? -穆文的回答 – 知乎

https://www.zhihu.com/question/21329754/answer/151216012

coursera上吴恩达《机器学习》第三周课程

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171759.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • cisco 路由器15.0版本和12.0版本NAT配置有点差别

    cisco 路由器15.0版本和12.0版本NAT配置有点差别

  • SQL Server——数据库创建及修改[通俗易懂]

    SQL Server——数据库创建及修改[通俗易懂]文章目录一、SQL Server数据库的相关概念1、逻辑数据库2、物理数据库二、SQL Server数据库的基本操作1、使用SQL Server Management Studio (创建/修改/删除)数据库2、使用SQL语句(创建/修改/删除)数据库【数据库文件的类型】【主要】【次要】【事务日志】文件组1.主文件组(PRIMARY)2.用户定义文件组【文件组特性】一、SQL Server数据库…

  • linux命令行安装jenkins插件,Linux 安装Jenkins[通俗易懂]

    linux命令行安装jenkins插件,Linux 安装Jenkins[通俗易懂]图片.png图片.png1、上传下载的jenkins安装包图片.png2、执行安装命令sudorpm-ihjenkins-2.222.1-1.1.noarch.rpm图片.png自动安装完成之后会产生一下目录:/usr/lib/jenkins/jenkins.warWAR包/etc/sysconfig/jenkins配置文件/var/lib/jenkins/…

    2022年10月29日
  • linux

    linux

  • 原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」

    原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」jps(JavaVirtualMachineProcessStatusTool)jsp是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。jps也是一样,它的作用是显示当前系统的java进程情况及进程id。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实

  • ccd视觉定位教程_CCD视觉定位识别系统,视觉系统ccd定位原理[通俗易懂]

    ccd视觉定位教程_CCD视觉定位识别系统,视觉系统ccd定位原理[通俗易懂]CCD机器视觉系统是用于工业检测及识别的高科技产品,生产的核心问题是工业计算机系统选型,可采集加工品的高清图像直接传输给到机子的GPIO接口。由于数字图像处理和计算机视觉技术的迅速发展,越来越多的研究者采用摄像机作为全自主用移动机器人的感知传感器。这主要是因为原来的超声或红外传感器感知信息量有限,鲁棒性差,而视觉系统则可以弥补这些缺点。而现实世界是三维的,而投射于摄像镜头(CCD/CMOS)上的图…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号