python系列-逻辑回归算法(logistic回归)之梯度上升算法理解及python实现
2019-02-17 15:15
513 查看
Logistic回归主要用于处理二分类问题,其实现需用到梯度上升与下降算法来寻找最优参数,这里通过简单的例子对梯度上升算法进行介绍与pyhon实现。
1.梯度
梯度方向就是函数值上升最大的方向!!!
2.实例:二次函数求极值问题
二次函数如下:f(x)=-x^2+x,其函数图像如下:
学过导数都知道这个函数的导数为:f’=-2x+2 ,在x=1处存在极大值,极大值为0;
但是实际问题中要求极大值不会这么简单,导数的求解可能很困难,直至无法求解,这时候就需要用到梯度上升或者下降算法对近似最优进行求解。
该函数的梯度为:▽f=-2x+2
梯度上升算法迭代公式:x:=x+α▽f,其中α为步长,即每次更新的大小,控制学习的速度步长大,学习速度快,但可能会错过极值;步长小,学习速度较慢;
求解过程如下:设定步长为0.01,初始x0为0,设定当两次迭代的值小于0.00000001 则停止迭代,虽有依次迭代,直到满足终止条件为止。
3.python代码实现
#pyhton3.6 def gradientAscent(): def testFun(x_old): #f(x)的导数 return -2 * x_old + 2 x_old = -1 #初始值,给一个小于x_new的值 x_new = 0 #梯度上升算法初始值,即从(0,0)开始 alpha = 0.01 #步长,每次更新的大小,学习速率 presision = 0.00000001 #精度,即达到进度范围停止迭代 while abs(x_new - x_old) > presision: x_old = x_new x_new = x_old + alpha * testFun(x_old) #上面提到的公式 print(x_new) #打印最终求解的极值近似值 a = gradientAscent() 0.999999518302382
相关文章推荐
- 理解Logistic回归算法原理与Python实现
- 机器学习经典算法详解及Python实现---Logistic回归(LR)分类器
- k最近邻算法(K-Nearest Neighbor)理解与python实现
- Logistic回归与梯度上升算法
- Logistic回归与梯度上升算法
- 梯度下降和梯度上升相关算法的分析与实现
- [机器学习]Logistic回归梯度上升法与改进的随机梯度上升算法
- 基于梯度上升算法的Logistic回归
- python实现信用卡欺诈检测 logistic回归逻辑回归算法
- python算法实现系列-堆排序
- 分类算法系列1-----KNN(K近邻)算法思想和python实现
- Logistic回归,梯度上升算法理论详解和实现
- Logistic回归与梯度上升算法
- Logistic回归中梯度上升算法的数学原理
- 算法基础之python实现动态规划中数字三角形和最长上升子序列问题
- 【机器学习系列】logistic回归python实现
- 最新回归算法理解、实现及应用(2)logistic回归
- 【算法分析】如何理解快慢指针?判断linked list中是否有环、找到环的起始节点位置。以Leetcode 141. Linked List Cycle, 142. Linked List Cycle II 为例Python实现
- 机器学习算法笔记系列之深入理解主成分分析PCA-Python实现篇
- Logistic回归和梯度上升算法