Logistic回归和梯度上升算法
来源:互联网 发布:linux 压缩命令 tar 编辑:程序博客网 时间:2024/06/06 04:57
Logistic回归和梯度上升算法
《机器学习实战》中有一个简单的例子用于练习Logistic回归。但是教材中仅仅给了代码,而略去了数学推导。那么如果直接应用这个代码再加上一些设置迭代次数,根据过程动态调整步长的技巧,就可以比较好地完成任务的。对应还附赠了一个horseColic的数据供练习,这个数据挺不错。
下面给出代码和说明:
import numpy as npdef sigmoid(X): return 1 / (1 + np.exp(-X))def gradAscent(dataMat, classLabels): dataMatrix = np.mat(dataMat) labelMat = np.mat(classLabels).transpose() m, n = np.shape(dataMatrix) alpha = 0.001 maxCycles = 500 weights = np.ones((n, 1)) for k in range(maxCycles): h = sigmoid(np.dot(dataMatrix, weights)) error = labelMat - h weights = weights + alpha * np.dot(dataMatrix.transpose(), error) return weights
结果利用书中的绘图引擎绘制图像如下,可以看出效果还是不错的。
下面分析算法。
算法核心为一个定义的sigmoid函数,并且回归基于一个迭代式
迭代式为
而
首先
这是由一套理论作支持的,这个理论便是一般线性模型。上述这些概率分布都可以称作是指数分布。而指数分布的对数发生比
然后考虑求解什么函数的最值呢?事实上是一个似然函数/对数似然函数的最值,然后用牛顿迭法求解构成驻点的值,所以迭代式与牛顿迭代法如此相似,因为原理就是基于牛顿迭代法的。
也就是说Logistic回归的本质是
我们与线性回归对比一下,线性回归是
Logistic回归把指数分布的概率做变换变为对数发生比,再用线性回归求解估计,这就是我的理解。
- Logistic回归和梯度上升算法
- Logistic回归和梯度上升算法
- Logistic回归算法(梯度上升)
- Logistic回归与梯度上升算法
- Logistic回归及梯度上升算法
- Logistic回归与梯度上升算法
- Logistic回归与梯度上升算法
- 基于梯度上升算法的Logistic回归
- logistic回归梯度上升优化算法
- Logistic回归梯度上升分类法
- Logistic回归(梯度上升)
- 机器学习之logistic回归的梯度上升算法
- Logistic回归中梯度上升算法的数学原理
- Logistic回归基础篇之梯度上升算法
- [机器学习]Logistic回归梯度上升法与改进的随机梯度上升算法
- Logistic回归(随机梯度上升)
- Logistic回归分类中的梯度上升法
- logistic回归梯度下降算法
- 单元测试 Visual Studio 2013
- 淘宝的消息中间件
- (33)Spring Boot 监控和管理生产环境【从零开始学Spring Boot】
- 平衡二叉树
- The sum problem——关于连续子数列的求和问题
- Logistic回归和梯度上升算法
- 模拟栈-C描述
- Jetty与tomcat的比较
- Android 下拉刷新,非常强大的下拉刷新功能
- MyEclipse移动开发教程:构建MobiOne应用(三)
- SourceTree保存密码--解决每次pull、push都要输入两次密码的问题
- chromedriver以及chrome google版本的对应关系
- (34)Spring Boot的启动器Starter详解【从零开始学Spring Boot】
- Java集合中删除元素使用Iterator