当前位置: 首页 > news >正文

Logistic Regression学习笔记

1.李航《统计学习方法》;

2.https://blog.csdn.net/laobai1015/article/details/78113214

3.http://www.cnblogs.com/bentuwuying/p/6616680.html

4.http://kyonhuang.top/Andrew-Ng-Deep-Learning-notes/#/Neural_Networks_and_Deep_Learning/神经网络基础

O、逻辑斯蒂回归的缘起

起源于线性回归。线性回归是一种回归分析技术,回归分析本质上就是一个函数值预测的问题,就是找出因变量和自变量之间的关系。回归分析的因变量应是连续变量,若因变量是离散变量,则问题转化为分类问题。

对于给定的数据集,我们需要学习的模型为:

也就是说,我们要从已知的数据集T中学习到模型参数w,b。怎么学呢?

对于给定的样本(xi,yi),我们模型的预测值为,两者之间的误差叫做损失,通常我们采取误差的平方作为损失函数,则在训练数据集T上,模型的损失函数为:

我们的目标是损失函数最小化,即:

上述这最后一步怎么求?我们可以用梯度下降法来求解上述最小化问题的数值解。关于梯度下降法,请参考:梯度下降原理及Python实现,和梯度下降(Gradient Descent)小结

 

 以上是线性回归(Linear Regression),其“线性”二字的内涵在于它认为模型输出(y)是模型输入(x)的线性表达式。而且,线性模型也可以用于分类!

 考虑二分类问题,我们有训练数据集,我们需要一个模型,能够告诉我们P(y|x)。比如,这个模型告诉我们P(y=1|x1)=0.6,P(y=0|x1)=0.4,然后因为0.6>0.4,所以模型认为特征x1对应的预测值y为1.如何找到这个模型呢?

借用线性模型的思想,我们引入w,b,由于w·x+b取值是连续的,所以它不能拟合离散变量y(取值为0或1),但可以用它拟合同为连续变量的条件概率P(y=1|x)。

我们注意到,w·x+b取值范围是-∞~+∞,不符合概率取值范围0~1,因此得将w·x+b进行转换,使其映射到0~1的范围。函数可以实现转换,最理想的是单位阶跃函数:

但是阶跃函数不满足单调可导,也就不能用梯度下降法求解损失函数最小化的参数w,b。我们可以找一个可导、与阶跃函数形状相似的函数,对数概率函数(logistic function)就是这样一个替代函数:,该函数也称sigmoid函数,该函数具有如下的特性:当x趋近于负无穷时,y趋近于0;当x趋近于正无穷时,y趋近于1;当x=1/2时,y=0. 可参考:http://www.cnblogs.com/maybe2030/p/5678387.html

 

一、逻辑斯蒂回归的概览

1.逻辑斯蒂回归是一种分类算法,最常用的二项逻辑斯蒂回归只适用于二分类问题;

2.逻辑斯蒂回归算法的思想就是:假定一件事情发生(Y=1)的对数几率是特征(x)的线性函数。或者说,在逻辑斯蒂回归模型中,输出Y=1的对数几率是由输入x的线性函数表示的。

3.二项逻辑斯蒂回归模型定义

二项逻辑斯蒂回归模型是如下的条件概率分布:

说明:上述两个式子代表了所有逻辑斯蒂回归模型的通用表达式,具体模型之间的差别在于模型参数w和b。对于给定的输入实例x,按照上述两式可以求得P(Y=1|x)和P(Y=0|x)。逻辑斯蒂回归比较两个条件概率值的大小,将实例x分到概率值较大的那一类。

4.Logistic 回归可以看作是一个非常小的神经网络。下图是一个典型例子:(参考文献4)

 

二、逻辑斯蒂回归的流程

我们要使用逻辑斯蒂回归模型搭建一个分类器,首先得写出这个逻辑斯蒂回归模型,其次得写出模型好坏的评价函数(即代价函数cost function),最后是估计模型的参数wb被融入到w中,即取w0=b,且将偏置项的变量x0设置为1)——即最小化损失函数来求得参数w

1.对于给定的训练数据集,首先我们初始化一个模型w,认为

显然对于训练数据(xi,yi),最好的模型是能够给出P(y=1|xi)=1,P(y=0|xi)=0这样的预测,显然这是不容易的。同时,由于我们一共有m条训练数据,我们必须要找到这样的模型,使得模型对全部训练数据集的整体预测效果最佳

2.如何评价模型好坏?直观地理解就是比较各个训练样本的真实标签和模型预测标签之间的误差值的加总,而这个总误差不便于求导。因此我们另外从极大似然估计的角度去描述模型好坏,即使得所有训练数据最有可能发生的模型w,就是我们要找的模型。(摘自参考资料2)

因此得到:

................................(*)

3.最后就是最小化J(θ),逻辑斯蒂回归学习中通常采用的方法是梯度下降法牛顿法。参考文献3。

对上述(*)式的J(θ)求θ的导数,可得:

根据梯度下降法,得到如下的更新公式:

 

三、总结

以上的1步就是给出逻辑斯蒂回归这一模型认为的判别函数集(模型参数未定,所以是一个函数集),第2步就是给出损失函数,就是给出了判断函数好坏的标准,第3步就是最小化损失函数来求得模型参数,就是挑选最好的函数的过程。

转载于:https://www.cnblogs.com/alesvel/p/9974742.html

相关文章:

  • 使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization)
  • vim常用命令总结 (转)
  • P2763 试题库问题
  • python 返回系统位数
  • python 安装虚拟环境步骤
  • anaconda更新tensorflow Mac版本
  • RabbitMQ 消息发送 properties
  • 《精通ASP.NET MVC4》学习笔记
  • webpack2学习(二)
  • 《步步惊“芯”——软核处理器内部设计分析》前两章读书笔记
  • etcd:从应用场景到实现原理的全方位解读
  • 一篇极好的Git 总结
  • java 实现 DES加密 解密算法
  • 卷积+池化+卷积+池化+全连接2
  • 【ABP框架系列学习】模块系统(4)
  • 【译】JS基础算法脚本:字符串结尾
  • (三)从jvm层面了解线程的启动和停止
  • canvas 绘制双线技巧
  • JS基础之数据类型、对象、原型、原型链、继承
  • js中forEach回调同异步问题
  • k个最大的数及变种小结
  • leetcode-27. Remove Element
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python_OOP
  • SegmentFault 2015 Top Rank
  • socket.io+express实现聊天室的思考(三)
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 笨办法学C 练习34:动态数组
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 经典排序算法及其 Java 实现
  • kubernetes资源对象--ingress
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (done) 两个矩阵 “相似” 是什么意思?
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转载)Linux网络编程入门
  • **PHP二维数组遍历时同时赋值
  • .net 4.0发布后不能正常显示图片问题
  • .Net 6.0 处理跨域的方式
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .net中我喜欢的两种验证码
  • @Autowired @Resource @Qualifier的区别
  • @Bean有哪些属性
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [C# 开发技巧]实现属于自己的截图工具