梯度下降算法

    在学习逻辑回归时,对梯度上升算法进行了应用,看到其他的博客讲解,梯度上升算法适合求最大值,梯度下降算法适合求最小值,这里有一个分析:

梯度上升算法公式

                                                    

是学习率,是一个常数。

                                                       


这个是根据逻辑回归的损失函数进行推导的。

梯度下降公式:

                                                   

                        


这个是根据线性回归的损失函数推导的。

我在思考这个跟线性回归里边的平方误差一样,都是求导为什么计算的结果不一样,后来才明白,线性回归用的是最小二乘法,梯度下降用的是损失函数,也不知道这样理解对不对。

随机梯度算法:

def stochastic_gradient_descent(x,y,theta,alpha,m,max_iter): # 自变量,因变量,待求的权值,学习速度,样本总数,最大迭代次数#随机梯度下降法,每一次梯度下降只使用一个样本iter=0flag=0while True:for i in range(m):#遍历样本deviation=0h=theta[0]*x[i][0] +theta[1]*x[i][1]theta[0] =theta[0] + alpha*(y[i]-h)*x[i][0]theta[1] =theta[1] + alpha*(y[i]-h)*x[i][1]iter = iter+1#计算误差for i in range(m):deviation = deviation +(y[i]-(theta[0]*x[i][0]+theta[1]*x[i][1]))**2if deviation <EPS or iter>max_iter:flag=1breakif flag==1:.breakreturn theta,iter,deviation
matrix_x = [[2.1,1.5],[2.5,2.3],[3.3,3.9],[3.9,5.1],[2.7,2.7]]
matrix_y = [2.5,3.9,6.7,8.8,4.6]
MAX_ITER =5000
EPS = 0.0001
theta=[2,-1]
ALPHA = 0.05
resultTheta,iters,deviation=stochastic_gradient_descent(matrix_x,matrix_y,theta,ALPHA,5,MAX_ITER)
print ('theta=',resultTheta)
print ('iters=',iters)
print ('deviation=',deviation)

批量梯度下降算法:

def batch_gradient_descent(x,y,theta,alpha,m,max_iter):#批量梯度下降法,每一次梯度下降使用训练集中的所有样本来计算误差。deviation = 1iter = 0while deviation > EPS and iter < max_iter:deviation = 0sigma1 = 0sigma2 = 0for i in range(m): #对训练集中的所有数据求和迭代h = theta[0] * x[i][0] + theta[1] * x[i][1]sigma1 = sigma1 +  (y[i] - h)*x[i][0] sigma2 = sigma2 +  (y[i] - h)*x[i][1] theta[0] = theta[0] + alpha * sigma1 /mtheta[1] = theta[1] + alpha * sigma2 /m#计算误差for i in range(m):deviation = deviation + (y[i] - (theta[0] * x[i][0] + theta[1] * x[i][1])) ** 2iter = iter + 1return theta, iter
matrix_x = [[2.1,1.5],[2.5,2.3],[3.3,3.9],[3.9,5.1],[2.7,2.7]]
matrix_y = [2.5,3.9,6.7,8.8,4.6]
MAX_ITER = 5000
EPS = 0.0001 #批量梯度
theta = [2,-1]
ALPHA = 0.05resultTheta,iters = batch_gradient_descent(matrix_x, matrix_y, theta, ALPHA, 5, MAX_ITER)
print ('theta=',resultTheta)
print ('iters=',iters)

随机梯度是在运行中选中一个样本,适合样本多的例子,但是,结果可能准确性不高。

批量梯度是选择m个样本就是比较,找到最小值,该算法适合样本少的例子,运行的效果也是比较好的。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

花了一个深夜,才用C语言写了一个2048游戏雏形

12年我毕业的第二个月工资&#xff0c;我就买了一个IPAD&#xff0c;然后在IPAD上下了一个2048游戏&#xff0c;玩起来非常爽。然后这几天看到好几个公众号都发了自己写这个游戏的代码&#xff0c;然后我自己也想试试&#xff0c;所以就有了这篇文章&#xff0c;写代码还是很有…

向银行贷款20万, 分期三年买50万的车,个人借款40万, 贷款10年买200万的房子,再贷款120万分创业...

向银行贷款20万按1年期贷款利率为&#xff1a;6%&#xff0c;若按年还贷款&#xff0c;银行贷款利息为&#xff1a;200&#xff0c;000*6%12&#xff0c;000。连本带息&#xff1a;20*106%21.2万分期三年买50万的车 贷款总额30万 年利率按10%算&#xff0c;分三年还清&#xff…

如何避免测试盲区

测试盲区&#xff0c;也就是软件中测试人员未测试到的地方&#xff0c;造成这方面的原因主要有测试人员对测试需求理解不足、经验不足和思维僵化等原因造成的。接下来&#xff0c;就如何避免测试盲区给出几点建议。 一、 充分理解软件需求需求方面的如果理解有误或者分析遗漏&a…

集成算法——Adaboost代码

集成算法是我们将不同的分类器组合起来&#xff0c;而这种组合结果就被称为集成方法或者是元算法。使用集成方法时会有多种形式&#xff1a;可以是不同算法的集成&#xff0c;也可以是同意算法在不同设置下的集成&#xff0c;还可以是数据集不同部分分配给不同分类器之后的集成…

年终抽奖来了

时间很快&#xff0c;2020年已经到了12月份&#xff0c;我从2018年开始写公众号&#xff0c;经过了快两年是时间&#xff0c;我收获了4万的读者&#xff0c;非常开心。我自己是一个挺逗逼的人&#xff0c;而且我写公众号并不觉得我比别人厉害&#xff0c;技术上我真的就是一个很…

DOS状态下可以安装Win XP

在DOS状态下可以安装Win XP&#xff0c;插入Win XP光盘后&#xff0c;首先从开始中进入MS-DOS&#xff0c;然后在MS-DOS下输入“G:\Setup.exe”(G为光驱盘符)即可。 如果想从纯DOS下进行安装&#xff0c;可用启动盘启动到DOS状态&#xff0c;安装时首先加载Smartdrv.exe(将Win …

嵌入式 Linux下永久生效环境变量bashrc

作者&#xff1a;skdkjxy原文&#xff1a;http://blog.sina.com.cn/s/blog_8795b0970101f1f9.html.bashrc文件 在linux系统普通用户目录&#xff08;cd /home/xxx&#xff09;或root用户目录&#xff08;cd /root&#xff09;下&#xff0c;用指令ls -al可以看到4个隐藏文件&am…

回归分析——线性回归

机器学习中&#xff0c;对于离散的数据可以做分类问题&#xff0c;那对于连续的数据就是做回归问题&#xff0c;这里对一元线性回归和多元线性回归做一个简介&#xff0c;帮组理解。回归分析&#xff1a;从一组样本数据出发&#xff0c;确定变量之间的数学关系式&#xff0c;对…

编译原理(五)自底向上分析之算符优先分析法

自底向上分析之算符优先分析法 说明&#xff1a;以老师PPT为标准&#xff0c;借鉴部分教材内容&#xff0c;AlvinZH学习笔记。 基本过程 1. 一般方法&#xff1a;采用自左向右地扫描和分析输入串&#xff0c;从输入符号串开始&#xff0c;通过反复查找当前句型的句柄&#xff0…

做Android开发,要清楚init.rc里面的东西

init.rc 复习看这个之前&#xff0c;先看看大神总结的文章这篇文章总结的非常到位&#xff0c;但是因为代码不是最新的Android版本&#xff0c;对我们最新的Android版本不适用。http://gityuan.com/2016/02/05/android-init/#init rc文件拷贝拷贝其实也就是把文件放到机器的某个…

abap常用系统变量

常用的系统变量如下: 1.sy-pagno当前页号 2.SY-DATUM当前时间 3.SY-LINSZ当前报表宽度 4.SY-LINCT当前报表长度 5.SPACE空字符 6.SY-SUBRC执行状态为0,表示成功. 7.SY-UNAME 用户名 8.SY-UZEIT当前时间 9.SY-TCODE当前的事务代码 10.SY-LSIND列表索引页 11.SY-LISTI上一个列表的…

随机森林

随机森林的思想&#xff1a;随机取样&#xff0c;创建M棵决策树&#xff0c;并对决策树的结果进行投票&#xff0c;选出最多的类别作为最后的分类结果。这里在创建决策树的时候引入了基尼指数的概念&#xff0c;基尼指数和信息增益的作用一样&#xff0c;都是选出数据集的最佳分…

Linux静态库和动态库的设计

静态库和动态库的设计 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供 Linux应用程序使用的主要函数库均存放于/lib, /usr/lib目录下&#xff0c;其中采用*.so.*方式命名的是动态函数库…

操作excel

static void create(String path) throws Exception {//读取文件FileInputStream in new FileInputStream(path);XSSFWorkbook wb new XSSFWorkbook(in);// 获得该工作区的第一个sheetXSSFSheet sheet wb.getSheetAt(0);int rowNum sheet.getLastRowNum();//行int columnNu…

无法安装软件之解决其一 (windows installer服务篇)

早上接到兄弟求助&#xff0c;无法安装软件&#xff0c;于是把最直接方法告诉他&#xff0c;还原啊。但ghost 进程到一半就当了&#xff0c;真是对不起他。。挂了电话后查了一下&#xff0c;现将方法总结如下&#xff1a;两种环境1 windows 2000系统 中&#xff1a;第一步&…

决策树——CART和模型树

CART树 理解&#xff1a; 如果CART树处理离散型数据&#xff0c;叫做分类决策树&#xff0c;那么&#xff0c;引入基尼指数作为寻找最好的数据划分的依据&#xff0c;基尼指数越小&#xff0c;说明数据的“纯度越高”&#xff0c;随机森林的代码里边就运用到了基尼指数。如…

宏比较值,坑的一B

昨晚上&#xff0c;我准备睡觉&#xff0c;连总给我发了一段代码#include "stdio.h"#define MAX_MACRO(a, b) ((a) > (b) ? (a) : (b)) int MAX_FUNC(int a, int b) {return ((a) > (b) ? (a) : (b)); }int main() {unsigned int a 1;int b -1;printf(&quo…

Linux下Samba服务器搭建

linux文件共享之samba服务器 ——ubuntu 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 关闭LINUX防火墙命令&#xff1a; #ufwdisable 然后就在windows下ping一下linux的IP&#xff0c;如果能ping通&#xff0c;就可以继续下面的内容&#xff0c;如果p…

日志分析linux命令

1、查看文件内容&#xff1a;cat 。-n显示行号。 2. more&#xff1a;全屏幕分页显示文件的内容。下一页&#xff1a;space键&#xff1b;上一页&#xff1a;B&#xff1b;停止&#xff1a;Q&#xff1b;显示下一行&#xff1a;Enter&#xff1b; 3. less&#xff1a;在文件最…

C#比较两时间大小

1。比较时间大小的实验 string st1"12:13"; string st2"14:14"; DateTime dt1Convert.ToDateTime(st1); DateTime dt2Convert.ToDateTime(st2); DateTime dt3DateTime.Now; if(DateTime.Compare(dt1,dt2)>0) msg.Textst1">…