机器学习上机作业.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机器学习上机作业

Gradient Descent1.题目描述: 用梯度下降法对所给数据进行一元线性回归。2.算法描述及步骤:回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等。对于梯度下降法来说,可以先对数据作出一个估计函数:θ在这儿称为参数,表示每个特征的重要性。为了如果我们令X0 = 1,就可以用向量的方式来表示了:然后需要一个机制去评估θ是否比较好,所以说需要对我们做出的h函数进行评估,一般这个函数称为损失函数(loss function)或者错误函数(error function),描述h函数不好的程度,在下面,我们称这个函数为J函数。在这儿我们可以做出下面的一个错误函数:梯度下降法是按下面的流程进行的:(1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。(2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。对于函数J(θ)求偏导:下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。θi表示更新之前的值,-后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。3.程序代码及解释:clear all;load shujusizeshuju=size(shuju);x=shuju(:,1);y=shuju(:,2);plot(x,y,+);hold on;syms theta0 theta1theta00=1;%初始化值theta11=1; alpha=0.005;%设定迭代步长n=0;J=0;while 1 n=n+1; J=0; for i=1:sizeshuju(1) J=J+(theta0+theta1.*x(i)-y(i)).^2; end J=J/(2*sizeshuju(1)); gJ=[diff(J,theta0) diff(J,theta1)]; gJ=subs(gJ,theta1,theta11); gJ=subs(gJ,theta0,theta00); if norm(gJ)0.3 break; end theta00=theta00-alpha*gJ(1);%根据公式,更新值。 theta11=theta11-alpha*gJ(2);endh=theta11.*x+theta00; J=0;;for i=1:sizeshuju(1) J=J+(h(i)-y(i)).^2; endx2=1:0.01:5;%画拟合直线和点数据分布y2=theta00+theta11.*x2;plot(x2,y2,r);theta00 %显示最终theta11J=J/(2*sizeshuju(1)) ;%计算损失函数值n %显示算法迭代次数4.实验结果:由结果可知,算法迭代63次才得以收敛,theta 的值为[1.2463,1.9055]。拟合直线:损失函数J随n的变化曲线:Logistic Regression1.题目描述:You are offered a Yale and ORL dataset (Facial datasets). You are asked to write a program in MATLAB, to use logistic regression to do a binary classification task and test your method. The classes (two classes)、the number of training samples and test samples are decided by yourself . Please compute the recognition accuracy.2.算法描述:对于目标值是离散变量的两分类问题,假设目标值是{0,1},所以先改变模型使其预测值在[0,1]之间,选择这样一个函数:有了这个函数,对于对于一个样例,就可以得到它分类的概率值:将上述公式组合起来,就可以得到公式如下:而在logistic回归问题中的损失函数与线性回归中的损失函数不同,这里定义的为:对上式求最大似然估计并用梯度下降法求解极值,得到参数的更新迭代公式:根据上式,将预测得到的数据的分类,标准分类带入上式并迭代,直至算法收敛,就可以得到最终的参数。3.编程实现步骤:(1)初始化参数,迭代步长;(2)导入数据;(3)计算损失函数;(4)梯度下降法求解;(5)参数更新;(6)测试数据,得到准确率。4.程序代码及解释:clear all;%因为logistic只能进行2分类,而Yale and ORL数据中却有很多类,从中选择两

文档评论(0)

zilaiye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档