




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据挖掘方法与应用数据挖掘方法与应用浙江工商大学统计与数学学院浙江工商大学统计与数学学院徐雪琪第8章 神经网络8.1 神经网络概述8.2 BP神经网络8.3 卷积神经网络8.4 基于IBM SPSS Modeler的应用8.5 基于R 语言的应用8.1 神经网络概述8.1.1 生物神经元与人工神经元1. 生物神经元生物神经元如图8.1 所示,由细胞体、树突、轴突和突触组成。2. 人工神经元人工神经元模拟生物神经元的工作方式如图8.2 所示。一个典型的有n 个输入的神经元可以用式(8-1)表示。(8-1)1niiiyfw x8.1.2 激活函数激活函数用于对神经元所获得的输入信息进行变换,将其结
2、果映射到一定的取值范围内。1. 线性函数( )f x = kx+c(8-2)2. 0,1阶跃函数00( )10, xf xx(8-3)3. (0,1)型Sigmoid 函数(8-4)1( )1exf x4. ReLU 函数(8-5)00( )0 xf xxx,例如,当上例神经元偏置值为-0.1 时,有这样,该样本就会被预测为类别2 了。所以,当该神经元接受(1,1,0)的输入时,产生的输出为0.668。假如一个分类型神经网络只有这样一个神经元,阈值为 0.65,当 y0.65时,样本预测为类别1,否则预测为类别2。所以,该样本就被预测为类别1。很多情况下,会给人工神经元加上一个偏置 ,一般是一
3、个(-1,1)的值,以改变神经元的活性。8.1.3 神经网络的拓扑结构1. 层的数目如图8.7所示,该网络只有一组连接权重( , , ),因此称为单层神经网络。多层网络添加了一层或者更多层的隐藏层,隐藏层的节点称为隐节点。w1w2w32. 每一层的节点数输入层输入节点的个数取决于输入变量的个数,输出层输出节点的个数可由需要建模的结果或结果中的类别数预先确定。隐藏层的节点数和其层数一样,需要在训练模型前自行指定。3. 信息传播的方向如果网络中从输入层、隐藏层到输出层,信号都是在一个方向上从一个节点到另一个节点连续地传送,即连接线的箭头都是指向一个方向,如图8.8 所示,这样的网络称为前馈神经网络
4、。反馈神经网络也称为递归神经网络,允许网络中有些神经元的输出反馈至同层神经元或前层神经元。8.2 BP 神经网络8.2.1 BP 神经网络的学习过程BP 算法的学习过程分为两个子过程,即工作信号正向传递子过程和误差信号反向传递子过程。1. 工作信号正向传递子过程(8-6)(8-7)1njijijinetv x1()1ejjjnethf net(8-8)(8-9)1mkjkjkjnetw h1()1ekkknetyf net2. 误差信号反向传递子过程对于某个训练样本,实际输出与期望输出的误差信号用误差平方和来表示,即E 定义为式(8-10)。(8-10)211()2lkkkEdy将误差信号E
5、向后传递回隐藏层,得式(8-11)。(8-11)2221111111() =() =222lllmkkkkkjkjkkkjEdydf netdfw h221111211111=()221 =2lmlmkjkjkjkjkjkjlmnkjkijikjiEdfw hdfw f netdfw fv x再将误差信号向后传递回输入层,得式(8-12)。(8-12)梯度下降法梯度下降法如果函数是一元函数,梯度就是该函数的导数,如式(8-13)所示。(8-13)如果函数是二元函数 f (x, y),则梯度为式(8-14),即分别对x和y求偏导。(8-14)( )=( )( )f xgrad ffx( , )(
6、 ),fff x ygrad fxy梯度的方向是函数在此点上升最快的方向,梯度前加一个负号,意味着朝着梯度相反的方向前进。(8-15)10=( ) xxf x如图8.11,经过四次运算,也就是走了四步,基本就抵达了函数的最低点。(8-16)(8-17)对于输出层,有(8-18)对于隐藏层,有(8-19)对输出层和隐藏层各定义一个权值误差信号,计算公式分别如下(8-20)(8-21)则有(8-22)(8-23)由式(8-11)可得代入式(8-24),可得同样可推出再考虑各层的偏置调整量,对于隐藏层,其调整量为对于输出层,其调整量为(8-31)(8-32)8.2.2 BP 算法描述8.2.3 前馈
7、神经网络计算示例图8.12 一个简单的前馈神经网络 1. 随机产生初始权值和偏置随机产生初始权值和偏置随机产生初始权值和偏置的结果如表8.1 所示。2. 求隐藏层输出求隐藏层输出表8.1 随机产生初始权值和偏置3. 求输出层输出求输出层输出4. 求输出层误差信号求输出层误差信号5. 求隐藏层误差信号求隐藏层误差信号6. 求隐藏层与输出层之间的权调整量和新权求隐藏层与输出层之间的权调整量和新权2121 22(1)=0.110144 0.2 0.689974 (1 0.689974)=0.004712hyw hh2112=0.80.1101440.689974=0.060 797ywh212121
8、=+=0.2+0.060 797=0.260 797www7. 求输入层与隐藏层之间的权调整量和新权求输入层与隐藏层之间的权调整量和新权8. 求隐藏层的偏置调整量和新偏置求隐藏层的偏置调整量和新偏置9. 输出层的偏置调整量和新偏置输出层的偏置调整量和新偏置第一次迭代完成。请在第一次迭代的基础上完成第二次迭代8.3 卷积神经网络卷积神经网络(convolutional neural network,CNN)也是一种前馈神经网络,对于大规模的模式识别有非常好的表现,广泛应用于图像、语音和视频识别。一个典型的卷积神经网络的结构如图8.13 所示。8.3.1 卷积层卷积层通过卷积运算,基于“局部感知”
9、和“参数共享”实现降维处理和提取特征的目的。1. 卷积的数学定义( )( ) ()dh xf t g xtt(8-33)式(8-33)所示的积分操作被称为连续域上的卷积操作。这种操作通常也被简记为式(8-34)。( )( )( )h xf xg x(8-34)对于离散信号,卷积操作可用式(8-35)表示。( )( )( )=( ) ()th xf xg xf t g xt(8-35)2. 卷积运算如图8.14 所示,卷积运算对输入数据应用卷积核。输入数据是一个44 的矩阵,卷积核是一个33 的矩阵,输出是一个22 的矩阵。在全连接的神经网络中,除了权值参数,还存在偏置。在CNN 中,卷积核矩阵
10、的值就对应全连接的神经网络中的权值。CNN 中也有偏置,卷积运算的偏置处理如图8.16 所示。在卷积操作前,还有一个需要注意的操作就是填充(padding)。填充是指用多少个单元来填充输入数据的边界。就像图8.17 所示,在这四周的区域都进行填充,一般都填上0 值。8.3.2 激活层CNN 中激活层的作用类似于BP 神经网络中神经元使用激活函数的作用,其将前一卷积层中的输出,通过非线性的激活函数转换,用以模拟任意函数,从而增强网络的表征能力。在CNN 中,使用最多的是如式(8-5)所示的ReLU 函数(rectified linear unit,规划线性单元)。8.3.3 池化层池化层(池层,
11、pooling layer),有些资料也将其称为下采样层(subsampling layer)。简单来说,池化就是把小区域的特征通过整合得到新特征的过程。常用的池化处理有两种方式,一种是最大池化(max pooling),一种是平均池化(average pooling)。池化还能够对输入的少量平移、旋转以及缩放等微小变化产生较大的容忍,也就是能保持池化结果的不变性。如图8.18(a)或者(b)中,前一层的输出变为如图8.19(a)和(b)所示,其最大池化和平均池化的结果仍然没有变化。8.3.4 全连接层全连接层就是传统的多层感知机,它的拓扑结构就是一个简单的n1的模式。所以,前面的层在接入全连
12、接层前,必须先将多维张量拉平成一维数组(n1),这个额外的多维数据变形工作层,有资料称其为平坦层(flatten layer)。然后,这个平坦层成为全连接层的输入层,其后的网络拓扑就和一般的前馈神经网络一样,后面可以跟若干个隐藏层和一个输出层。8.4 基于IBM SPSS Modeler 的应用本节应用示例的数据集来源于kaggle 平台,Bank customer.csv 数据集在原数据集的基础上进行了一些简单处理,包含了150 000 位客户的历史信贷信息。从数据读入、数据审核节点预处理、探索性分析、分区与平衡到神经网络模型构建和评价,建立的数据流如图8.20 所示。图图8.20 Bank
13、 customer 数据神经网络分析数据流数据神经网络分析数据流8.4.1 数据读取图图8.21 Bank customer 数据读取数据读取图图8.22 Bank customer 数据表示例数据表示例8.4.2 “数据审核”节点预处理图图8.23 “数据审核数据审核”节点节点“质量质量”选项卡选项卡图图8.24 “数据审核数据审核”节点节点“审核审核”选项卡运行结果选项卡运行结果图图8.25 “数据审核数据审核”节点节点“质量质量”选项卡运行结果选项卡运行结果图图8.26 基于基于“离群值离群值”和和“极值极值”超节点的超节点的“数据审核数据审核”节点节点“审核审核”选项卡运行结果选项卡运
14、行结果图图8.27 基于基于“离群值离群值”和和“极值极值”超节点的超节点的“数据审核数据审核”节点节点“质量质量”选项卡运行结果选项卡运行结果图图8.28 “缺失值缺失值”超节点参数设置超节点参数设置8.4.3 探索性分析1. Default 分布使用“图形”选项卡下的“分布”节点,运行结果如图8.29 所示。图图8.29 Default 分布分布2. 客户的年龄分布使用“图形”选项卡下的“直方图”节点,探索年龄的分布特征,运行结果如图8.30所示。图图8.30 age 的直方图的直方图3. 基于“平均值”节点的探索图图8.31 “平均值平均值”节点节点“设置设置”选项卡选项卡图图8.32
15、均值比较结果均值比较结果8.4.4 分区与平衡1. 分区图图8.33 分区的分布分区的分布2. 平衡图图8.34 “平衡平衡”节点节点图图8.35 平衡后平衡后Default 的分布的分布8.4.5 模型构建与评价1. 模型构建图图8.36 “类神经网络类神经网络”节点节点“字段字段”选项卡选项卡图图8.37 “类神经网络类神经网络”节点节点“构建选项构建选项”目标设置目标设置图图8.38 “类神经网络类神经网络”节点节点“构建选项构建选项”基本设置基本设置图图8.39 “类神经网络类神经网络”节点节点“构建选项构建选项”中止规则设置中止规则设置图图8.40 “类神经网络类神经网络”节点节点“
16、构建选项构建选项”整体设置整体设置图图8.41 “类神经网络类神经网络”节点节点“构建选项构建选项”高级设置高级设置图图8.42 “类神经网络类神经网络”节点节点“模型选项模型选项”设置设置2. 模型结果与评价图图8.43 模型概要模型概要图图8.44 预测变量重要性预测变量重要性图图8.45 行百分比形式正确率分布行百分比形式正确率分布可以呈现的模型形式有两种:效果形式和系数形式。图图8.46 Default 神经网络效果形式神经网络效果形式图图8.47 Default 神经网络系数形式神经网络系数形式将模型连接分区节点,并使用分析节点,可以查看模型对于未平衡数据的预测效果。运行分析节点,得
17、到如图8.48 所示的结果。在训练集和测试集上,模型整体准确率都达到了83%以上。虽然对于违约客户的识别能力较弱,但相对于严重不平衡的数据集,效果已较为理想。图图8.48 模型预测能力分析模型预测能力分析8.5 基于R 语言的应用本节应用示例的数据集来自于UCI 机器学习数据仓库(machine learning data repository),由P.Cortez、A.Cerdeira、F.Almeida、T.Matos 和J.Reis 捐赠。本示例选用该数据集中的白葡萄酒数据Whitewines.csv,共4898 个白葡萄酒案例,每个案例包含11 种化学特性信息及葡萄酒专家的质量评分,评
18、分区间从0(很差)到10(非常好)。8.5.1 数据初探1. 数据集初探2. 数值型变量探索结合直方图来进一步探索白葡萄酒质量的分布,结果如图8.49 所示。使用summary()函数探索非挥发性酸、挥发性酸和柠檬酸的描述统计量,结果如下所示:使用cor( )函数探索变量间的相关性:相关系数矩阵结果如图8.50 所示。图图8.50 相关系数矩阵相关系数矩阵8.5.2 数据转换与分区自定义规范化函数normalize( ),使用最大值最小值规范化方法。使用lapply( )函数,把定义的normalize( )函数用于wine 数据框的每一列。使用summary( )函数查看规范化后的quality 变量的描述统计量。划分训练集和测试集8.5.3 模型构建与评价本示例使用neuralnet包。先训练一个最简单的只有一个隐节点的二层前馈神经网络。neuralnet函数的基本形式为:然后使用plot( )函数将wine_net1 网络拓扑结构可视化,结果如图8.51 所示。查看wine_net1 网络误差、迭代次数、迭代终止时的权值和偏置等信息。基于测试数据集使用compute( )函数生成预测结果。compute( )函数返回带有两个分量的列表:$neurons 用来存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论