2--决策树(预剪枝、后剪枝部分)和 神经网络_决策项 评分分 神经网络-程序员宅基地

技术标签: python  机器学习  周报  决策树  

本周学习内容:

  1. 继续学习预剪枝、后剪枝部分的处理以及结果可视化展示
  2. 学习神经网络算法相关内容

1 实现决策树结果的可视化以及预剪枝、后剪枝的处理

    这里可视化是选择python 中的 graphviz 库来实现,graphviz模块提供了两个类:Graph和Digraph。他们都是使用DOT语言,一个是创建无向图,一个是创建有向图。
    首先在所给出的数据集(仍使用上周的西瓜数据集)上基于基尼指数来进行划分选择得到的决策树,采用留出法,预留一部分数据用作测试集来对生成决策树的精度进行评估,这里将数据集随机化为两部分,编号{1,2,3,6,7,10,14,15,16,17}的数据作为训练集,其余数据作为测试集。
    具体计算基尼指数函数如下:


 
    最终构建的决策树结果如图1所示,

 

图1未剪枝的决策树

    对图1的决策树进行预剪枝得到图2的决策树,可以看出来该方法剪掉了较多的分支,虽然降低了过拟合的风险,但存在较大的欠拟合风险。

 

图2 预剪枝的决策树

       对图1的决策树进行后剪枝得到图3的决策树,与图2相比,该决策树保留了较多的分支,欠拟合风险较小,但训练时间开销会大一些。

 

图3 后剪枝的决策树

       这里对三种决策树分别进行测试得到各自在测试集上的精度,结果如图4所示:

 

图4 各决策树在测试集上表现的精度

2 神经网络
2.1神经元模型

    神经元模型是神经网络中最基本的。如图5所示,在该模型中,神经元接受到来自n个其他神经元传递的输入信号,通过带权重的连接进行传递,神经元接收到的总输入值与神经元的阈值进行比较,最后通过激活函数处理后得到输出。


                                                            图5 MP神经元模型

2.2 感知机与多层网络

感知机由两层神经元组成,输入层接收输入信号后传递给输出层,易知其只有输出层神经元需要进行激活函数处理,即只拥有一层功能神经元。其学习规则比较简单,对训练数据(X,y),若当前感知机的输出为y1,则其权重将调整为:

 

其中η为学习率,通常设置为一个较小的正数。如需解决非线性问题,就需要用到多层功能神经元,即神经网络进行学习的过程就是根据输入的训练数据来调整神经元之间的权重以及阈值,得到最好的一个效果。

2.3 误差逆传播(BP)算法

BP(back propagation)神经网络是是一种按照误差逆向传播算法训练的多层前馈神经网络。既无法直接得到隐层的权值,那就通过输出层得到输出结果和期望输出的误差来间接调整隐层的权值,该算法的基本思想:学习过程由信号的正向传播(求损失)与误差的反向传播(误差回传)两个过程组成。

正向传播,在这个过程中,根据输入的样本,给定的初始化权重值W和偏置项的值b, 计算最终输出值以及输出值与实际值之间的损失值。如果损失值不在给定的范围内则进行反向传播的过程,否则停止W,b的更新。

反向传播,将输出以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。

网络结构如图6所示,设初始权重值w和偏置项b为:

W = (0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65)

b = (0.35,0.65)

这里为了便于计算,假设从输入层到隐层之间, 隐层到输出层之间的偏置项b恒定。

 

图6 网络结构图

1) 正向传播计算过程

从输入层到隐层

h1 = w1*l1 +w2*l2 +b1*1 = 0.1*5+0.15*10+0.35*1

h2 = w3*l1 +w4*l2 +b1*1 = 0.2*5+0.25*10+0.35*1

h3 = w5*l1 +w6*l2 +b1*1 = 0.3*5+0.35*10+0.35*1

经过激活函数后:

Outh1 = 11+e-h1  

Outh2= 1 1+e-h2

Outh3= 1 1+e-h3

隐层到输出层:

neto1 = outh1*w7 +outh2*w9 +outh3*w11+ b2*1= 2.35*0.4 + 3.85*0.5 +5.35 *0.6+0.65 = 2.10192   

neto2 = outh1*w8 +outh2*w10 +outh3*w12 +b2*1= 2.35*0.45 + 3.85*0.55 +5.35 *0.65 +0.65= 2.24629 

经过激活函数后:

Outo1 = 0.89(真实值为0.01)     Outo2 = 0.90(真实值为0.99)

均方误差为:

易知其与真实值不符,则需要进行BP反馈计算。这里只对一个权重进行更新示例,运用梯度下降法求解W7的值。

则此时的损失函数为:  

又有 neto1 = outh1*w7 +outh2*w9 +outh3*w11+ b2*1,  outo1 =  f(o1)

    则对W7求偏导数得到:

根据参数更新公式得到W7* = 0.36 同理可对其他参数进行更新。

 

2.4 RBF网络

RBF全称Radial Basis Function,中文名称“径向基函数”,是一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,输出层是对隐层神经元输出的线性组合。通常采用两部过程来训练RBF网络,第一步,确定神经元中心 Ci,常用的方式包括随机采样、聚类等;第二步,利用BP算法等来确定参数Wi和βi

2.5 ART网络

ART(Adaptive Resonance Theory)网络属于竞争型学习类,即网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的被抑制。该网络由比较层、识别层、识别阈值和重置模块构成。其中比较层负责接 输入样本,并将其传递给识别层神经元。识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类。

竞争的最简单的方式是计算输入向量与每个识别层神经元所对应的模式类的代表向量之间的距离,距离最小者胜。获胜神经元将向其他识别层神经元发送信号,抑制其激活。若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别。同时网络连接权将会更新使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜。若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。

2.6 SOM网络

SOM(Self-Organizing Map ,自组织映射)网络是一种竞争学习型的无监督神经网络,能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。

下周计划:

  1. 学习支持向量机相关内容
  2. 对于python编程语言还是不能熟练使用,看能不能复现一些核心代码。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangyumei0916/article/details/126173407

智能推荐

Python爬虫网页解析神器Xpath快速入门教学!!!_python xpath 等于class的标签-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏18次。文章目录1、Xpath介绍2、Xpath路径表达式3、结合实例讲解1、Xpath介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。2、Xpath路径表达式表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.选取当前节点…选取当前节点的父节点_python xpath 等于class的标签

快手上热门的小技巧,抖音快手直播5个上热门技巧_快手作品上了小热门后应该怎么做-程序员宅基地

文章浏览阅读2.1k次。2020下半年,随着直播带货行业发展势头越来越猛,各大电商平台纷纷涉足直播电商,普通人也跃跃欲试想要加入直播带货,那么普通人该如何选择直播平台呢,这要根据每个人的自身条件,不管做抖音还是快手,初始最重要的就是涨粉,今天小编分享的是新人做抖音快手直播如何快速涨粉的技巧。说到抖音快手涨粉,最暴力的莫过于上热门,一个视频上热门,涨粉可能就有好几万,比如之前有个直播睡觉,一夜爆红的主播,一天时间涨粉几百万,一晚收入70多万,不知道羡煞多少旁人。了解抖音快手上热门的机制是怎样的!抖音快手热门视频推荐机制,或者_快手作品上了小热门后应该怎么做

html输入哪种table好,如何将html转换为Handsontable哪个表还有html输入字段<table> </table>...-程序员宅基地

文章浏览阅读94次。我想显示一个动态表,其中包含来自自定义搜索的记录。现在我想将表格行设为内联可编辑行。我还需要对表进行分页,因为我需要在同一个表上显示30到40个表列(滚动列)。我使用Handsontable来实现这一点,如下图所示,但是,图像不会像我在表格单元格中输入一样。Scroll - HandsontableActionIDNameAddress1testtest2test2test23test3test3..._html版 handsontable

如何用python生成带图片名称和标签的.txt文件(代码)_将标注信息按指定格式制作图片对应的txt标签数据。-程序员宅基地

文章浏览阅读1.6w次,点赞23次,收藏147次。我们之前实现了如何用python批量修改图片的名称,不清楚的同学可以看一下这一篇:python批量修改一个文件夹下含多个文件夹中的所有图片名称(代码)接下来我们来看一下如何生成带图片名称和标签的txt文件因为我们在用caffe进行分类训练时,不管是生成imdb还是直接拿图片训练,都是需要标签文件的话不多说,直接上代码:#!/usr/bin/python# -*- co..._将标注信息按指定格式制作图片对应的txt标签数据。

如何设置EXCEL表格单元格的内容可以换行显示_电脑里面的文本控制自动换行在哪里-程序员宅基地

文章浏览阅读1.6k次。点击单元格,选择“设置单元格格式”,然后选择“对齐”,在“文本控制”中勾选“自动换行”就可以了,当然你也可以选择水平对齐和垂直对齐的“居中”哦。..._电脑里面的文本控制自动换行在哪里

虚拟机安装Mac Ox 10.6 之后的驱动安装vmware tool 安装_苹果笔记本装虚拟机后设备驱动也是虚拟吗-程序员宅基地

文章浏览阅读2.3k次。在虚拟机上成功安装Mac OX 10.6 系统之后,还有一些的需要的驱动。在安装vmare tool , 在启动界面,将setting->CD/DVD(IDE)选项中drawin.iso, 将上面的对话框connect 选中,之后会在系统的桌面上看到VMware Tool( Drawin) , 双击进去,直接双击Install VMware tools, 之后就可以的,重新启动,如下图所示_苹果笔记本装虚拟机后设备驱动也是虚拟吗

随便推点

园区网络IP地址规划_园区私有地址-程序员宅基地

文章浏览阅读6.9k次,点赞11次,收藏89次。笔者当年先后考取了CCNA、CCNP、CCIE;经过这些年工作,接触从几万、几十万到上亿的项目都有;我简单总结了接触的大部分的项目,将园区网核心技术进行了归纳,如下:IP地址规划1.IP地址基础在IP网络中,通信节点需要有一个唯一的IP地址,IP地址用于IP报文的寻址以及标识一个节点;IP地址中最重要的是子网划分 VLSM,可参照NA。2.特殊IP地址a.受限广播(用于IP地址请求阶段)所有位全为1,255.255.255.255b.直接广播(子网广播) 主机位全为1,如192.168.1_园区私有地址

java Swing弹出式提示框_javaswing setlocation-程序员宅基地

文章浏览阅读5.7k次。package com.sanguo.test;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Toolkit;import java.awt.event.MouseEvent;import _javaswing setlocation

Docker容器与虚拟化技术:OpenEuler 部署 ES 与 Kibana-程序员宅基地

文章浏览阅读441次,点赞21次,收藏15次。使用镜像elasticsearch:7.8.0,以后台模式启动一个容器,将容器的 9200 端口映射到主机的 19200 端口,主机的配置文件/data/elasticsearch/config/elasticsearch.yml映射到容器的配置文件/usr/share/elasticsearch/config/elasticsearch.yml,主机的相关目录映射到容器的相关目录。进入容器中找到/usr/share/kibana/config/kibana.yml。(2) 点击插件 (Edge浏览器)

Multi-Instrument中 VT XLR-to-USB使用探头的选择_vtxlr-程序员宅基地

文章浏览阅读320次。就是探头看到说明书上说1,2,3分别对应VTXLR-to-USB的hi,med,lo.我看到当我软件中探头和硬件VTXLR-to-USB开关没对应的时候,也是有输入的,这种情况下测试是对的吗1.探头看到说明书上说1,2,3分别对应VTXLR-to-USB的hi,med,lo.我看到当我软件中探头和硬件VTXLR-to-USB开关没对应的时候,也是有输入的,这种情况..._vtxlr

Django搜索功能的实现_django做搜索功能-程序员宅基地

文章浏览阅读9.1k次,点赞4次,收藏44次。在用Django搭建网站的时候,要实现一个搜索功能,实现对数据库的检索功能,这里用到了网上的几个标准库: django-haystack, whoosh, jieba。其中这里有详细的haystack中文教程1 首先是在相应的环境中安装,pip install 上面这三个。这个是默认安装anaconda的环境里,当然你也可以安装到自己的虚拟环境中。2 进行配置,首先是在Django的se..._django做搜索功能

基于Vue前端UI框架比较_antdesignvue和vue的区别-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏7次。基于Vue前端UI框架比较Vue3相对于vue2的优缺点优点:性能提升,主要体现在打包体积(减少了40%左右),渲染速度(快了55%),更新速度(100%)及内存使用(减少了50%)几方面。 由于增加了composition api,更加支持Ts,使得代码相对于Vue2更利于维护。缺点:就目前来说用户数量和社区活跃度没有vue2高,有一定的学习成本(包括学习ts)各个UI框架的比较根据目前市场常用的框架进行初步筛选,入选了4款框架,分别为element-ui, ant-desi_antdesignvue和vue的区别