逻辑回归算法原理_人工智能回归算法

逻辑回归算法原理_人工智能回归算法http://ihoge.cn/2018/LR.html逻辑回归模型逻辑回归也被称为对数几率回归,算法名虽然叫做逻辑回归,但是该算法是分类算法,个人认为这是因为逻辑回归用了和回归类似的方法来解决了分类问题。逻辑回归模型是一种分类模型,用条件概率分布的形式表示P(Y|X)P(Y|X)P(Y|X),这里随机变量X取值为n维实数向量,例如x=(x(1),x(2),…,x(n))…

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

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

http://ihoge.cn/2018/LR.html

逻辑回归模型

逻辑回归也被称为对数几率回归,算法名虽然叫做逻辑回归,但是该算法是分类算法,个人认为这是因为逻辑回归用了和回归类似的方法来解决了分类问题。

逻辑回归模型是一种分类模型,用条件概率分布的形式表示 P(Y|X) P ( Y | X ) ,这里随机变量 X 取值为 n 维实数向量,例如 x=(x(1),x(2),...,x(n)) x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) ,Y 取值为 0 或 1。即:

P(Y=1|x)=exp(wx+b)1+exp(wx+b) P ( Y = 1 | x ) = exp ⁡ ( w ⋅ x + b ) 1 + exp ⁡ ( w ⋅ x + b )

P(Y=0|0)=11+exp(wx+b) P ( Y = 0 | 0 ) = 1 1 + exp ⁡ ( w ⋅ x + b )

或:

ϕ(x)=11+ewTxb ϕ ( x ) = 1 1 + e − w T x − b

假设有一个二分类问题,输出为 y{
0,1}
y ∈ { 0 , 1 }
,二线性回归模型 z=wTx+b z = w T x + b 是个实数值,我们希望有一个理想的阶跃函数来帮我什么实现z值到0/1值的转化,于是找到了Sigmoid函数来代替:

g(z)=11+ez g ( z ) = 1 1 + e − z




逻辑回归算法原理_人工智能回归算法

有了 Sigmoid 函数之后,由于其值取值范围在[0,1]。就可以将其视为类 1 的后验概率估计 p(y=1|X) p ( y = 1 | X ) 。说白了,就是如果有了一个测试点 x,那么就可以用Sigmoid函数算出来的结果当作该点 x 属于类别 1 的概率大小。

于是,非常自然地,我们把 Sigmoid 函数计算得到的值大于等于0.5的归为类别1,小于0.5的归为类别0:

逻辑函数的损失函数

接下来要做的就是根据给定的训练集,把参数 w 给求出来了。要找参数 w,首先就得把代价函数(Cost Function)给定义出来,也就是目标函数。

我们第一个想到的自然是模仿线性回归的做法,利用误差平方和来当代价函数:

J(θ)=12mi=0m(ϕ(xi)yi)2 J ( θ ) = 1 2 m ∑ i = 0 m ( ϕ ( x i ) − y i ) 2



这时将预测函数

g(z(i))=11+ex(i) g ( z ( i ) ) = 1 1 + e − x ( i )
代入损失函数的话,会发现这是一个非凸函数,这意味着代价函数有着许多的局部最小值,这不利于我们求解:

逻辑回归算法原理_人工智能回归算法
那么我们不妨来换一个思路解决这个问题。前面,我们提到了 ϕ(z) 可以视为类1的后验估计,所以我们有:
逻辑回归算法原理_人工智能回归算法
其中 p(y=1|x;w) p ( y = 1 | x ; w ) 表示给定 w,那么 x 点 y=1 的概率大小。于是上面两式可以写成一般形式:
逻辑回归算法原理_人工智能回归算法

注:以上的过程说明,最大似然估计与误差平方和等价!这就是为什么逻辑回归的损失函数可以用最大似然函数进行估计的原因。

接下来我们就要用极大似然估计来根据给定的训练集估计出参数 w:
逻辑回归算法原理_人工智能回归算法
为了简化运算,我们对上面这个等式的两边都取一个对数:
逻辑回归算法原理_人工智能回归算法
我们现在要求的是使得 l(w) 最大的 w。没错,我们的代价函数出现了,我们在 l(w) 前面加个负号不就变成就最小了吗?不就变成我们代价函数了吗?
逻辑回归算法原理_人工智能回归算法
为了更好地理解这个代价函数,我们不妨拿一个例子的来看看:
逻辑回归算法原理_人工智能回归算法
也就是说:
逻辑回归算法原理_人工智能回归算法
下面是函数图:
逻辑回归算法原理_人工智能回归算法
从图中不难看出,如果样本的值是1的话,估计值 ϕ(z) 越接近1付出的代价就越小,反之越大;同理,如果样本的值是0的话,估计值 ϕ(z) 越接近0付出的代价就越小,反之越大。

逻辑回归的模型求解

在开始梯度下降之前,要这里插一句,Sigmoid function 有一个很好的性质就是 :

ϕ(z)=ϕ(z)(1ϕ(z)) ϕ ′ ( z ) = ϕ ( z ) ( 1 − ϕ ( z ) )



这个后续会用到。

还有,我们要明确一点,梯度的负方向就是代价函数下降最快的方向:这里来解释下。借助泰勒公式展开,有:
逻辑回归算法原理_人工智能回归算法
其中,f′(x) 和 δ 为向量,那么这两者的内积就等于:
逻辑回归算法原理_人工智能回归算法
当 θ=π 时,也就是 δ 在 f′(x) 的负方向上时,取得最小值,也就是下降的最快的方向了。
于是有:
逻辑回归算法原理_人工智能回归算法
即:
逻辑回归算法原理_人工智能回归算法
其中, wj w j 表示第 j 个特征的权重;η 为学习率,用来控制步长。 重点来了:
逻辑回归算法原理_人工智能回归算法
所以,在使用梯度下降法更新权重时,只要根据下式即可:
逻辑回归算法原理_人工智能回归算法
此式与线性回归时更新权重用的式子极为相似,也许这也是逻辑回归要在后面加上回归两个字的原因吧。当然,在样本量极大的时候,每次更新权重会非常耗费时间,这时可以采用随机梯度下降法,这时每次迭代时需要将样本重新打乱,然后用下式不断更新权重:
逻辑回归算法原理_人工智能回归算法
也就是去掉了求和,而是针对每个样本点都进行更新。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171772.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • FPS游戏:实现GDI方框透视「建议收藏」

    FPS游戏:实现GDI方框透视「建议收藏」FPS游戏可以说一直都比较热门,典型的代表有反恐精英,穿越火线,绝地求生等,基本上只要是FPS游戏都会有透视挂的存在,而透视挂还分为很多种类型,常见的有D3D透视,方框透视,还有一些比较高端的显卡透视

    2022年7月1日
    157
  • npm使用淘宝镜像(npm切换淘宝镜像)

    1.通过cnpm使用淘宝镜像:npminstall-gcnpm–registry=https://registry.npm.taobao.org2.将npm设置为淘宝镜像:npmconfigsetregistryhttps://registry.npm.taobao.org3.查看cnpm镜像设置:cnpmconfiggetregistry

    2022年4月10日
    359
  • 互联网金融风控模型「建议收藏」

    互联网金融风控模型「建议收藏」一、市场调研目前市面主流的风控模型1、互联网金融前10名排行榜(数据截止日期2017-09-12)互联网金融公司排名分别是蚂蚁金服、陆金所、京东金融、苏宁金融、百度金融、腾讯理财通、宜信、钱大掌柜、万达金融和网易理财。1.1蚂蚁金服1.1.1大数据技术对接第三方征信公司芝麻信用分,通过用户信用历史、行为偏好、履约能力、身份特质、人脉关系五个维度对…

    2022年6月14日
    34
  • xshell7怎么连接虚拟机_centos ssh

    xshell7怎么连接虚拟机_centos ssh文章目录一、xshell简介二、xshell安装三、xshell链接虚拟机的centos71.查看虚拟机中centos系统的ip2.利用ip链接一、xshell简介Xshell[1]是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及MicrosoftWindows平台的TELNET协议。Xshell通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复…

    2025年12月6日
    5
  • vuecli安装成功但无法运行_vue cli service

    vuecli安装成功但无法运行_vue cli service1.依赖node所以先安装node,可从官网下载安装,安装一直下一步最后选安装目录2.win+r输入cmd运行,先输入node-v和npm-v查看node安装是否正常(我这里node是10.5.0npm是6.1.0)3.安装vue,npm安装过慢且成功率较低,建议使用cnpm安装3.1npm安装方法,npminstallvue(安装成功请到第4步)…

    2022年10月9日
    5
  • PyTorch建立resnet34和resnet101代码[通俗易懂]

    PyTorch建立resnet34和resnet101代码[通俗易懂]model.pyimporttorch.nnasnnimporttorchclassBasicBlock(nn.Module):expansion=1def__init__(self,in_channel,out_channel,stride=1,downsample=None):super(BasicBlock,self).__init__()self.conv1=nn.Conv2d(in_channels=

    2022年9月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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