欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    R语言与机器学习--分类算法.docx

    • 资源ID:4889005       资源大小:142.82KB        全文页数:11页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    R语言与机器学习--分类算法.docx

    R语言与机器学习-分类算法(三)三、BP神经网络1、sigmoid函数分类回顾我们前面提到的感知器,它使用示性函数作为分类的办法。然 而示性函数作为分类器它的跳点让人觉得很难处理,幸好sigmoid函数 y=1/(1 eA-x)有类似的性质,且有着光滑性这一优良性质。我们通过下图 可以看见sigmoid函数的图像:-420240-40200204060Sigmoid函数有着计算代价不高,易于理解与实现的优点但也有着欠 拟合,分类精度不高的特性,我们在支持向量机一章中就可以看到 sigmoid函数差劲的分类结果。2、BP神经网络结构BP (Back Propagation )神经网络,即误差反传误差反向传播算法的学 习过程,由信息的正向传播和误差的反向传播两个过程组成。由下图可 知,BP神经网络是一个三层的网络:输入层(input layer):输入层各神经元负责接收来自外界的输入信息, 并传递给中间层各神经元;隐藏层(Hidden Layer):中间层是内部信息处理层,负责信息变换,根 据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最 后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次 学习的正向传播处理过程;输出层(Output Layer):顾名思义,输出层向外界输出信息处理结果;当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通 过输出层,按误差梯度下降的方式修正各层权值,向隐藏层、输入层逐 层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不 断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络 输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。3、反向传播算法反向传播这一算法把我们前面提到的delta规则的分析扩展到了带有 隐藏节点的神经网络。为了理解这个问题,设想Bob给Alice讲了一个 故事,然后Alice又讲给了 Ted,Ted检查了这个事实真相,发现这个 故事是错误的。现在Ted需要找出哪些错误是Bob造成的而哪些又归 咎于Aliceo当输出节点从隐藏节点获得输入,网络发现出现了误差, 权系数的调整需要一个算法来找出整个误差是由多少不同的节点造成 的,网络需要问,“是谁让我误入歧途?到怎样的程度?如何弥补? ”这 时,网络该怎么做呢?同样源于梯度降落原理,在权系数调整分析中的唯一不同是涉及到 t(p,n)与y(p,n)的差分。通常来说Wi的改变在于:alpha * s'(a(p,n) * d(n) *X(p,i,n)其中d(n)是隐藏节点n的函数,让我们来看:n对任何给出的输出节点有多大影响;输出节点本身对网络整体的误差有多少影响。一方面,n影响一个输出节点越多,n造成网络整体的误差也越多。 另一方面,如果输出节点影响网络整体的误差越少,n对输出节点的影 响也相应减少。这里d是对网络的整体误差的基值,W(n,j)是n对j 造成的影响,d* W(n,j)是这两种影响的总和。但是n几乎总是影响 多个输出节点,也许会影响每一个输出结点,这样,d(n)可以表示为: SUM(d(j)*W(n,j)这里j是一个从n获得输入的输出节点,联系起来,我们就得到了 一个培训规则。第1部分:在隐藏节点n和输出节点j之间权系数改变,如下所示: alpha *s'(a(p,n)*(t(p,n) - y(p,n) * X(p,n,j)第2部分:在输入节点i和输出节点n之间权系数改变,如下所示: alpha *s'(a(p,n) * sum(d (j) * W(n,j) * X(p,i,n)这里每个从n接收输入的输出节点j都不同。关于反向传播算法的 基本情况大致如此。通常把第1部分称为正向传播,把第2部分称为反向传播。反向传 播的名字由此而来。4、最速下降法与其改进最速下降法的基本思想是:要找到某函数的最小值,最好的办法是 沿函数的梯度方向探寻,如果梯度记为d,那么迭代公式可写为 w=w-alpha*d,其中alpha可理解为我们前面提到的学习速率。最速下降法有着收敛速度慢(因为每次搜索与前一次均正交,收敛 是锯齿形的),容易陷入局部最小值等缺点,所以他的改进办法也有不 少,最常见的是增加动量项与学习率可变。增加冲量项(Momentum)修改权值更新法则,使第n次迭代时的权值的更新部分地依赖于发 生在第n-1次迭代时的更新Delta (w) (n)=-alpha*(1-mc)*Delta(w)(n) mc*Delta(w)(n-1)右侧第一项就是权值更新法则,第二项被称为冲量项。梯度下降的 搜索轨迹就像一个球沿误差曲面滚下,冲量使球从一次迭代到下一次迭 代时以同样的方向滚动冲量有时会使这个球滚过误差曲面的局部极小 值或平坦区域,冲量也具有在梯度不变的区域逐渐增大搜索步长的效 果,从而加快收敛。改变学习率当误差减小趋近目标时,说明修正方向是正确的,可以增加学习率; 当误差增加超过一个范围时,说明修改不正确,需要降低学习率。5、BP神经网络的实现(1) 数据读入,这里我们还是使用R的内置数据一一鸢尾花数据, 由于神经网络本质是2分类的,所以我们将鸢尾花数据也分为两类(将 前两类均看做第2类),按照特征:花瓣长度与宽度做分类。(2) 划分训练数据与测试数据(3) 初始化BP网络,采用包含一个隐含层的神经网络,训练方法 使用包含动量的最速下降法,传递函数使用sigmoid函数。(4) 输入样本,对样本进行归一化,计算误差,求解误差平方和(5) 判断是否收敛(6) 根据误差调整权值。权值根据以下公式进行调整:Delta(w)= alpha *s'(a(p,n)*(t(p,n) - y(p,n) * X(p,n,j)其中,alpha为学习率,s'(a(p,n)*(t(p,n)- y(p,n)为局部梯度。此外, 由于使用了有动量因子的最速下降法,除第一次外,后续改变量应为:Delta(w)(n)=-alpha*(1-mc)*Delta(w)(n) mc*Delta(w)(n-1)(7) 测试,输出分类正确率。完整的R代码:01 .|i pi。1-亦.m狗pi02 .irisl<-cbind(irisl,c(rep(l,100),rep(0,50)03 .jset.seed(5)04 .n<-length(irisl1)05 .samp<-sample(l:n,n/5)06.traind<-irisl-samp,c(l,2)07. jtrainl<-irisl-samp,308.testd<-irislsampJc(l,2)09. jtestl<-irislsamp,313. |11.set.seed(l)12 .ntrainnum<-12613. nsampdim<-214. |15 .net.nin<-216. net.nhiddcn< 217. net.nout<-l.nhiddennet.nin)18 .w<-2*matrix(runif(net.nhidden*net.nin)-0.5,19.b<-2*(runif(net nhidden)-0.5)23 .net .wl<-cbind(vj,b)21 . j W<-2*matrix(runif (net nhidden*net. nout )-6.5,net. noutnet .nhidden)22 .B<-2*(runif(net.nout)-0.5)23. net .u/2<-cbind(W,B)24. |25. jtraind_s<-traind26 .traind_s,l<-traind,l-mean(traind,l)27 .traind_s,2<-traind,2-mean(traind,2)28 .traind_s,l<-traind_s,l/sd(traind_s,l)29 .traind_s,2<-traind_s,2/sci(traincl_s,2)30. |31 .sampinex<-rbind(t(traind_s),rep(lntrainnum)32. expectedout<-trainl33. |34. eps<-0.0135. a<-e.336. mc<-0.837. maxiter<-200638. iter<-039. |40. errrec<-rep(0,maxiter)41 I "I43.44. |45. |46.47 I48.49.m I51.52.53. |54.54. |56 - I57.58. |59 I60.61时I6,I64. |65. |66. |67. |63 - I69 |70.outrec<-matrix(rep(Qntrainnummaxiter)ntrainnumj maxiter)sigmoid< - -Funczion(x)exp(-x)fr(i in 1:maxiTer)(hid_iinpuT< -nez .wlXsampinex;hid_out<-sigmoid(hid_input);out_impu'zl< - rbind(hid_out3 rep(lJ irzrainnum):out_itnpuT2< -ne-z .w2%*%out_inputl;out_out<-sigmoid(ouT_input2);outreci'<-t(out_ouz):err< -expec Tedout-ouTut;sse<-5um(errA2);errrec i|< -sse;izer<-iTer 1;if(sse<=eps)brea<Delta<-err*sigmoid(out_out)*(1-sigmoid(out_out)delta<-(matrix(net.w21:(length(net.w2l,)-!)%*%Delta*sigmoid(hid_out)*(1-sigmoid(hid_out);dWex<-Delta%*%t(out_inputl)dwex<-delta%*%t(sampinex)顼i=l)net.w2<-net.w2 a*dWex;net.wl<-net.wl adwex;71 - I72. I else73 . |net.w2<-net.w2 (l-mc)*a*dWex mc*dWexold;74. net.wl<-net.wl (l-mc)*a*dv/ex mc*dv/exold;75. |76. |77. jdWexold<-dWex;78. dv/exold<-dv/ex;79. |80. I81.81. Testd_s< -zestd8? .Testd j 1' < -zestd , 1' -mean( testd , 1)84."std_s j 2' < -zestd ,2'_ -mean(testd , 2)85 ""d_s j 1' < -zestd , 1' /sd( testd_s , 1)186 .Testd j 2' < -zestd , 2' /sd( testd_s , 2)87.88 .inex<-rbind(t(testd_5)j reptl,150-ntrainnum)89 .Ihid_input<-pet.wl%*%inex90 .Ihid_out<-sigmoid(hid_input)E1.out_inputl< - rbind(hid_Qut, reptl, 150-ntrainnum)92 out_input2<-pet.w2%*%out_inputl9? .out_out<-sigmoid(out_input2)94.out_outl<-out_out95.96 .out_outlout_out< 0.5'<-097 out_outlout_out >=0.5'<-198.99 .rate<-sum(out_outl=-zes-zl)/length(tesTl)分类正确率为:0.9333333,是一个不错的学习器。这里需要注意的 是动量因子mc的选取,mc不能过小,否则容易陷入局部最小而出不去, 在本例中,如果mc=0.5,分类正确率仅为:0.5333333,学习效果很不 理想。(未完待续。)

    注意事项

    本文(R语言与机器学习--分类算法.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开