热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:逻辑回归logisticregression

篇首语:本文由编程笔记#小编为大家整理,主要介绍了逻辑回归logisticregression相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了逻辑回归 logistic regression相关的知识,希望对你有一定的参考价值。



逻辑回归其实并不“逻辑”也不是回归,而是分类模型,逻辑是指利用了Logistic非线性函数。


逻辑回归

在logistic regression中,我们用logistic函数来预测类别标签的后验概率

[p(y=1|x)=sigma(w^T cdot x)=frac{1}{1+exp(-w^Tcdot x)} ag{1}
]

这里(x=[x_1,cdots,x_D,1])(w=[w_1,cdots,w_D,b]),是(D+1)维的增广的特征向量和权重向量。

标签(y=0)的后验概率

[p(y=0|x)=1-p(y=1|x) ag{2}
]

由公式1可以得到

[w^Tx=log frac{p(y=1|x)}{p(y=0|x)} ag{3}
]

其中(frac{p(y=1|x)}{p(y=0|x)})称为几率(Odds),所以(w^Tx)就是几率的对数,所以逻辑回归也称为对数几率回归。

当正负样本概率相等时,(w^Tx=log(1)=0),因此逻辑回归的目的就是求参数(w)使得正样本(w^Tx>0)负样本(w^Tx<0)


损失函数

使用交叉熵损失函数,在二分类问题中

[J(w) = -frac{1}{m}sum_{i=1}^mleft(y^ilog(hat{y}^i) + (1-y^i)log(1-hat{y}^i )
ight)
]

(y^i)是样本(x^i)的真实标签,(hat{y}^i)是模型的预测标签,正样本的损失是(log(hat{y}))负样本的损失是(log(1-hat{y}))

我们的目标是最小化损失函数。


参数学习


随机梯度下降

SGD是通过对损失函数求偏导确定梯度方向,沿着梯度方向更新参数以最小化损失函数

[frac{partial J(w)}{partial w} = -frac{1}{N} sum_{i=1}^N x^i(y^i-hat{y}^i)
]

[w_{t+1} leftarrow w_t - alpha frac{partial J(w)}{partial w}
]

代码实现

# 梯度下降法
for _ in range(500):
# 利用逻辑回归做预测
y0 = logistic(w,ex)
# 计算当前的交叉熵损失
ce = cross_entropy(y,y0)
# print("第{}轮,cross_entropy = {}".format(_,ce))
# 求偏导
partial = (np.sum(ex*(ey-y0),axis=0))/N
# 更新参数
w = w-alpha*partial

技术图片


牛顿法

牛顿法在求解方程(f( heta)=0)的根时主要是根据泰勒展开式进行迭代求解,假设有初始近似解(x_k),那么(f(x))在点(x_k)处的泰勒展开式

[f(x)approx f(x_k)+f‘(x_k)(x-x_k)
]

(f(x)=0)求解得到(x_{k+1})

[x_{k+1} = x_k - frac{f(x_k)}{f‘(x_k)}
]

牛顿法的几何解释如下图

技术图片

在逻辑回归中,损失函数的最小值在(J‘(w)=0)处。用牛顿迭代法求参数

[w_{t+1} leftarrow w_t - frac{J‘(w)}{J‘‘(w)}
]


推荐阅读
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
author-avatar
asdasdasd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有