Logistic回归算法(LR)

算法简介

LR名为回归,实际是一种分类算法。其针对输入样本集 x x,假设的输出结果 y=hθ(x)y=h_{\theta}(x) 的取值范围为 y=[0,1] y=[0,1] 。在线性回归中, hθ(x)=θTX h_{\theta}(x)=\theta^{T} X,在此引入Logistic函数,也被称为Sigmoid函数

g(z)=11+e−z

g(z)=\dfrac{1}{1+e^{-z}}其图像

在线性回归中, hθ(x)=θTX h_{\theta}(x)=\theta^{T} X,令 z=hθ(x) z=h_{\theta}(x),代入上式即可得到

g(x)=11+e−θTX

g(x)=\dfrac{1}{1+e^{-\theta^{T}X}}这里的 hθ(x) h_{\theta}(x)也被称做是该Logistic回归的“决策边界”,再令 hθ(x)=g(x) h_{\theta}(x)=g(x),即为Logistic回归的假设函数,那么下面来讨论如何得到该假设的最佳参数 θ \theta。

利用梯度下降来最小化代价函数
要使用该方法,首先需要求出Logistic回归的代价函数 J(θ) J(\theta),由于LR属于一种监督学习,所以样本集包括输入和输出两部分,在LR中,样本的输出 y={0,1} {y=\{0,1\}},我们在这里分两种方式来讨论, y=0 y=0与 y=1 y=1的情况。

在 y=0 {y=0}的情况中,我们需要的是输出结果尽可能地靠近0,尽可能的远离1,于是我们可以构造这样的代价函数

Costy=0(θ)=−log(1−hθ(x))

Cost_{y=0}(\theta)=-log(1-h_{\theta}(x))
这样就使得在 y−>0 y->0的时候其代价函数 Cost(θ)y=0(θ) Cost(\theta)_{y=0}(\theta)也趋近于0,也就是在分类越接近于真实的情况的时候,其代价函数就越小,相反在 y−>1 y->1的时候,代价函数 Cost(θ)y=0(θ) Cost(\theta)_{y=0}(\theta)趋近于无穷,也就是越偏离真实情况,其代价函数就越大。

相反,在 y=1 y=1的情况下,构造其代价函数

Costy=1(θ)=−log(hθ(x))

Cost_{y=1}(\theta)=-log(h_{\theta}(x))

最后对两者综合考虑,可以得到最后的单个样本代价函数

Cost(θ)=−(1−y)log(1−hθ(x))−ylog(hθ(x))

Cost(\theta)=-(1-y)log(1-h_{\theta}(x))-ylog(h_{\theta}(x))可以这样理解,当 y=0 y=0的时候,上式中前项的系数为1,后项为0,相当于就只有 −log(1−hθ(x)) -log(1-h_{\theta}(x))起作用,而 −log(hθ(x)) -log(h_{\theta}(x))项不起作用,也就对应了 y=0 y=0情况下的代价函数状态, y=1 y=1的时候同理。

构造LR的代价函数 J(θ) J(\theta)有两种方法,第一种是直接将 hθ(x)=11+e−θTX h_{\theta}(x)=\dfrac{1}{1+e^{-\theta^{T}X}}代入常用的平方均值代价函数 J(θ)=12m∑mi=1(hθx(i)−y)2 J(\theta)=\dfrac{1}{2m}\sum_{i=1}^{m}(h_{\theta}x^{(i)}-y)^{2}中,但是这样会得到一个非凸函数,不利于后面的梯度下降或其他优化方法的应用。

下面主要介绍另一种方法,即根据上面构造的 Cost Cost函数来获得整体的 J(θ) J(\theta),在这里取整体的均值误差作为代价函数可以得到

J(θ)=−1m∑i=1m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]

J(\theta)=-\dfrac{1}{m}\sum_{i=1}^{m}[y^{(i)}log(h_{\theta}(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]这样的方法相比上面的好处就是这是一个凸函数,可以方便的使用梯度下降等方法求解,在这里以梯度下降为例,可以求得其梯度为

∂∂θJ(θ)=∑i=1m(hθ(x(i))−y(i))x(i)

\frac{\partial}{\partial\theta}J(\theta)=\sum^{m}_{i=1}(h_{\theta}(x^{(i)})-y^{(i)})x^{(i)}最后即可以根据下式来求解该方程

θ:=θ−α∂∂θJ(θ)

\theta:=\theta-\alpha\frac{\partial}{\partial\theta}J(\theta)式中 α \alpha为学习率,一般也称之为步长,按照上式迭代一定的步数后则可以得到最优解。
根据Andrew NG的说法,可以利用其他的高级方法来求解该方程,只需将其函数和梯度作为参数传入更加高级的求解方法中即可,一般由软件包来完成该工作。

下面给出几个关键部分MATLAB代码

//其中的变量均为列向量,X是m*n的矩阵,其中m为样本个数,n-1为特征个数,在X的最左边另外有一列全1
J=-1/m*(y'*log(sigmoid(X*theta))+(1-y')*log(1-sigmoid(X*theta)));   //求出代价函数
grad=1/m*X'*(sigmoid(X*theta)-y);   //求出梯度

机器学习中的Logistic回归算法(LR)相关推荐

  1. python实现logistic_用Python实现机器学习算法—Logistic 回归算法

    在 Logistic 回归中,我们试图对给定输入特征的线性组合进行建模,来得到其二元变量的输出结果.例如,我们可以尝试使用竞选候选人花费的金钱和时间信息来预测选举的结果(胜或负).Logistic 回 ...

  2. 面试准备——机器学习中的优化器算法

    一.优化问题 总体来看,机器学习的核心目标是给出一个模型(一般是映射函数),然后定义对这个模型好坏的评价函数(目标函数),求解目标函数的极大值或者极小值,以确定模型的参数,从而得到我们想要的模型.在这 ...

  3. logistic回归分析优点_机器学习实战项目-Logistic回归

    Logistic 回归 概述 Logistic 回归虽然名字叫回归,但是它是用来做分类的.其主要思想是: 根据现有数据对分类边界线建立回归公式,以此进行分类. 须知概念 Sigmoid 函数 回归 概 ...

  4. Logistic回归算法实战

    实战--预测病马的死亡率 前面,我简单介绍了「Logistic分类器」. Logistic回归算法 今天,我们将进行实战操练:使用Logistic分类器来预测患有疝病的马的存活率. 疝病是描述马胃肠痛 ...

  5. 数学解析Logistic回归算法

    数学解析Logistic回归算法 在<Logistic回归算法(分类问题)>一节,我们学习了 Logistic 回归算法,并且重点认识了 Logistic 函数.我们知道分类问题的预测结果 ...

  6. circle loss代码实现_Python全栈之路-23-使用Python实现Logistic回归算法

    视频讲解地址 使用Python实现Logistic回归算法_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 本文代码 地址​github.com Logistic ...

  7. 机器学习系列(8)_回归算法,支持向量机

    注:本篇文章参考:b站:机器学习经典算法--回归算法 文章目录 一.机器学习简介 二.回归算法 三.支持向量机要解决的问题 四.支持向量机求解目标 五.核函数变换 一.机器学习简介 机器学习应用的领域 ...

  8. 机器学习中较为简单的算法有哪些?

    链接:https://www.zhihu.com/question/431924548 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:石塔西 https://www.zhihu.com/ ...

  9. Python实现 logistic 回归算法

    Python实现 logistic 回归算法 1.算法介绍 模型描述: sigmoid函数: 原理: 优化目标:最小化 sigmoid(f(x)) 和真实标签的差别(有不同的 cost functio ...

最新文章

  1. Qwt中如何在曲线上标定特定点
  2. YTU 2924: 文件操作--二进制文件读入
  3. undolog 是binlog_mysql日志redo log、undo log、binlog以及作用看这篇就可以啦
  4. 人工智能助力 上海科委咨询服务用机器人技术
  5. 模拟恶劣网络环境常用的几种解决方案
  6. hbuilderx的快捷键整理pdf_47个电脑快捷键大全,让你工作提升100倍,一般人我不告诉他...
  7. 恭喜 | 黑龙江大学自然语言处理实验室获得NLPCC2019跨领域移植中文依存句法分析封闭测试第一名!...
  8. 企业Web应用中的敏捷测试和瀑布测试
  9. 苹果电脑怎样禁用首字母自动大写?
  10. 银河麒麟V10下载安装使用体验(上)
  11. 苏宁“北京攻略”:老阵地,新战场 | 一点财经
  12. 万里汇WorldFirst个人和企业帐户注册教程(送$25+1%提现费)
  13. Linux7.5 安装mysql8.0.13教程
  14. 决策树-ID3与C4.5
  15. 本地服务:无法访问此网站 localhost 拒绝了我们的连接请求。ERR_CONNECTION_REFUSED
  16. 2016新财富最佳分析师榜单全揭晓
  17. 数据库原理与应用--数据库系统概述
  18. Angular2.0视频教程来了!
  19. ECharts-旭日图(Sunburst)带时间轴
  20. self.font = core.getfont(font, size, index, encoding, layout_engine=layout_engine) OSError: cannot o

热门文章

  1. idea构建web项目-超详细教程
  2. 信息安全风险评估流程
  3. 老板运煤问题及解决方案
  4. java中注解动态传参_Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)...
  5. 好用的矢量绘图软件:EazyDraw 9 for Mac中文破解版!
  6. 青菜传说_拔剑-浆糊的传说_新浪博客
  7. Verilog HDL语法提纲
  8. win10双显卡怎么切换amd和英特尔_Win10电脑上如何从双显卡切换为独立显卡呢?...
  9. IATF16949认证是ISO9001在汽车行业的运用
  10. 小米最新netguard 解锁软件 账户锁 不反锁 支持红米note7pro 小米9 小米10等新款手机