Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率...
(手机的颜色,大小,用户体验来加权统计总体的值)极大似然估计MLE
1.Logistic回归
Logistic regression (逻辑回归),是一种分类方法,用于二分类问题(即输出只有两种)。如用于广告预测,也就是根据某广告被用户点击的可能性,把最可能被用户点击的广告摆在用户能看到的地方,结果是用户要么点击要么不点击。
通常两类使用类别标号0和1表示,0表示不发生,1表示发生。
问题引入
例如:有100个手机,其中有30个是你喜欢的,70个是不喜欢的。现预测你对第101个手机的喜好。这是一个两类问题,喜欢与不喜欢。
显然这是一个二分类问题,我们对第101个手机进行预测分类,分为喜欢和不喜欢两个类别。
我们需要对手机取特征(属性),比如价格,外观,用户体验。简单处理,只考虑3个方面(即3个特征)。综合考虑这些因素,并且把这些值进行数字化的表示。数字越大说明越喜欢,越小越不喜欢。
怎么数字化表示这些量呢?
对每部手机对应价格,外观,用户体验都可以给出一个具体的数值。
我们回忆一下贝叶斯分类:
2. Sigmoid 函数
3.Sigmoid函数性质
分类性质
回顾我们的后验概率如何分类的,每个可以观测的样本都有属于某类的概率。分类时候选取后验概率大的值进行分类。这里是两分类问题每个样本均可带入P(y=1|x)和P(y=0|x)谁的概率值大,我们就将样本归入某类。
现在分类模型为下边公式,但含有未知量 ,只要求出 就可以对样本,就可以带入样本就行计算,对样本进行分类。
如何求未知参数 ?我们有m个样本,思路是建立一个目标函数,求目标函数极值。极值处的 值,就是我们最优未知参数值。
参数估计
假设分类的概率
上面的概率可以写到一起 (类似二项分布)
m个样本的似然函数为
对数似然函数
使得似然函数值最大?梯度下降(上升)法。
似然函数求导
常规方法时效。故用梯度下降法
Logistic回归中是未知参数 ,目标是求出 。通过构建似然函数,目标使似然函数最大。
回顾我们梯度下降法。
(J是上边的L函数,手误)问题解决
4.梯度上升法
目标使似然函数最大,我们可以使用梯度上升法进行迭代。
梯度下降法根据样本使用的不同,一次使用所有样本更新参数为批处理梯度下降法。一次只随机使用一个样本来更新参数随机梯度下降法。
同样我们的Logistic回归可以使用批处理梯度上升法和随机梯度上升法。梯度上升法和梯度下降法都是寻找函数的极值,只是搜索方向的不同而已。根据具体函数的性质,进行选择,两者没有本质的不同。
我们容易通过把函数转换成,把极大化问题转换成极小化问题。函数加负号即可。
5.批处理梯度下降法
6.随机梯度下降法
7.代码实现
准备数据,样例数据如下,前两列分别为x1和x2值,第3列为数据的类别,这样的数据有100条。
批处理梯度下降(上升)算法计算最佳回归系数
矩阵为什么要转置?
运行测试
if __name__ == "__main__":
dataMat,classLabels=loadDataSet()
weights=gradAscent(dataMat, classLabels)
plotBestFit(weights.getA())
8.随机梯度下降(上升)法SGD (stochastic gradient descent)
运行测试
if __name__ == "__main__":
dataAttr, labelMat = loadDataSet()
weights = stocGradAscent0(array(dataAttr), labelMat)
plotBestFit(weights)
9.改进的随机梯度下降
运行测试
if __name__ == "__main__":
dataAttr, labelMat = loadDataSet()
weights = stocGradAscent1(array(dataAttr), labelMat)
plotBestFit(weights)
运行结果对比
比较原始的随机梯度下降和改进后的梯度下降,可以看到两点不同:
1)系数不再出现周期性波动。
2)系数可以很快的稳定下来,也就是快速收敛。这里只迭代了20次就收敛了。而上面的随机梯度下降需要迭代200次才能稳定。
(a)梯度下降算法迭代500次。
(b)随机梯度下降算法迭代200次。
(c)改进的随机梯度下降算法迭代20次。
(d)改进的随机梯度下降算法迭代200次。
10.示例:从疝气病症预测病马是否存活
一、处理数据中的缺失值
二、用Logistic回归进行分类
运行测试
if __name__ == "__main__":
multiTest()
11.总结
转载于:https://www.cnblogs.com/chaoren399/p/4850427.html
Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率...相关推荐
- Logistic回归实战---疝气病症预测病马的死亡率
Logistic回归实现预测HorseColic 使用Logistic回归来预测患疝气病的马的存活问题(从疝气病症预测病马的死亡率) 一.环境准备 原始数据集下载及说明:http://archive. ...
- 逻辑回归实战:从疝气病症预测病马的死亡率
下面使用Logistic回归来预测患有疝病的马的存活问题,数据集中包含了368个样本和28个特征.数据集中包含了医院检测马疝病的一些指标,有的指标比较主观,有的指标难以测量,例如马的疼痛级别.另外需要 ...
- python预测疾病_吴裕雄--天生自然python机器学习:使用Logistic回归从疝气病症预测病马的死亡率...
,除了部分指标主观和难以测量外,该数据还存在一个问题,数据集中有 30%的值是缺失的.下面将首先介绍如何处理数据集中的数据缺失问题,然 后 再 利 用 Logistic回 归 和随机梯度上升算法来预测 ...
- 机器学习实战:逻辑回归(2)-从疝气病症预测病马的死亡率
1.准备数据:处理数据中的缺失值 可选的做法: 使用可用特征的均值来填补缺失值: 使用特殊值来填补缺失值,如-1: 忽略有缺失值的样本: 使用相似样本的均值添补缺失值: 使用另外的机器学习算法预测缺失 ...
- 机器学习实战--Logistic回归与实例:从疝病症预测病马的死亡率
声明 本文参考了<机器学习实战>书中代码,结合该书讲解,并加之自己的理解和阐述 机器学习实战系列博文 机器学习实战--k近邻算法改进约会网站的配对效果 机器学习实战--决策树的构建.画图与 ...
- 机器学习实战——利用Logistic回归预测疝气病症的病马的死亡率
数据来源 http://archive.ics.uci.edu/ml/machine-learning-databases/horse-colic 处理过程 由于该数据集存在30%的缺失,那么首先必须 ...
- 机器学习算法(四)逻辑回归理论与python实现+经典示例(从疝气病预测病马的死亡率)
学习笔记更新 什么是逻辑回归? 简要介绍 逻辑回归是用来解决线性回归问题的,它将线性回归得到的结果通过逻辑函数映射到[0,1]之间,因此称逻辑回归.逻辑回归模型主要用于解决二分类问题,是一个分 ...
- 机器学习实战之Logistic回归(四)从疝气病症状预测病马的死亡率(含数据集)
Logistic回归(三)从疝气病症状预测病马的死亡率(含数据集) 准备 准备数据:处理数据中的缺失值 训练算法:使用优化算法,找到最佳系数 测试算法:用Logistic回归进行分类 转载请注明作者和 ...
- 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解
批量梯度下降(BGD).随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解 </h1><div class="clear"></div> ...
最新文章
- 用指针来表示二维数组的方法
- shell中的比较(if运算)
- commonjs 和 es6模块化开发入门
- awk嵌套awk_与AWK一起喝咖啡
- Django uplodify 多文件同时上传
- CentOS7默认的防火墙不是iptables,而是firewalle.
- 深度学习自学(二十二):人脸检测人脸识别-嵌入式平台方案汇总
- mysql ssl编译_MySQL8开启ssl加密
- 超全的 Python 可视化教程,收藏
- Web测试需要注意的点
- 简要介绍随机森林原理
- QLabel显示QImage时报错
- [转载]浙江杭西高2011年5月高二地理(徐霞客游记TV版-
- python模拟鼠标操作_python 捕捉和模拟鼠标键盘操作
- 微信有什么办法可以让加人不频繁?
- 技能设计漫谈 ——从游戏性和流畅角度来看技能的设计要点。
- 计算机树的逻辑结构,树结构(示例代码)
- c语言18之鸡兔同笼,共有98个头,386只脚,编程求鸡兔各多少只
- 初学Python之fractions模块下Fraction使用方法
- 7-5 盲盒包装流水线
热门文章
- elasticsearch index 之merge
- 关于aop:pointcut的expression配制说明及JoinPoint
- 程序员买房与程序员转型
- html中select标签刷新后不回到默认值而是保持之前选择值
- Qt--在.pro文件中添加链接库的写法
- 指针的动态初始化malloc与销毁free
- Android_安卓为按钮控件绑定事件的五种方式
- 连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决
- AltiumDesigner14.3.X系列软件安装及破解过程
- 太阳能计算机作文500字,自制太阳能热水器