《《R语言数据挖掘方法及应用》第六章.ppt》由会员分享,可在线阅读,更多相关《《R语言数据挖掘方法及应用》第六章.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、R R语言数据挖掘方法及应用语言数据挖掘方法及应用学习目标 理论方面,理解神经网络分类预测的基本原理,适用理论方面,理解神经网络分类预测的基本原理,适用性和方法特点。性和方法特点。 实践方面,掌握实践方面,掌握R R的神经网络实现、应用以及结果解的神经网络实现、应用以及结果解读,能够正确运用神经网络实现数据的分类预测读,能够正确运用神经网络实现数据的分类预测R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用案例说明n 收集到顾客特征及其消费行为数据。希望基于数据找收集到顾客特征及其消费行为数据。希望基于数据找到顾客特征和消费行为间的规律,并依据
2、规律对新顾到顾客特征和消费行为间的规律,并依据规律对新顾客的消费行为进行预测。客的消费行为进行预测。n 年龄、性别和收入水平应作为预测模型的输入变量,年龄、性别和收入水平应作为预测模型的输入变量,是否购买为输出变量是否购买为输出变量R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用人工神经网络n 人工神经网络人工神经网络(Artificial Neural Network, ANNArtificial Neural Network, ANN)n 是一种人脑的抽象计算模型,是一种模拟人脑思维是一种人脑的抽象计算模型,是一种模拟人脑思维的计算机建模
3、方式的计算机建模方式n 人工神经网络的应用研究正从人工智能逐步跨入以人工神经网络的应用研究正从人工智能逐步跨入以数据分析为核心的数据挖掘领域,并大量应用于数数据分析为核心的数据挖掘领域,并大量应用于数据的分类和回归预测中。也可应用于聚类分析中据的分类和回归预测中。也可应用于聚类分析中n 人工神经网络由相互连接的神经元,也称处理单元人工神经网络由相互连接的神经元,也称处理单元组成。如果将人工神经网络看作一张图,则处理单组成。如果将人工神经网络看作一张图,则处理单元也称为节点。节点之间的连接称为边,反映了各元也称为节点。节点之间的连接称为边,反映了各节点之间的关联性,关联性的强弱体现在边的连接节点
4、之间的关联性,关联性的强弱体现在边的连接权重上权重上R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用人工神经网络n 人工神经网络的种类人工神经网络的种类: :拓扑结构角度划分拓扑结构角度划分n 两层神经网络两层神经网络n 三层神经网络和多层神经网络三层神经网络和多层神经网络n 神经网络的最底层称为输入层,最顶层称为输出层,中间神经网络的最底层称为输入层,最顶层称为输出层,中间层称为隐层。神经网络的层数和每层的处理单元的数量,层称为隐层。神经网络的层数和每层的处理单元的数量,决定了网络的复杂程度决定了网络的复杂程度R R语言数据挖掘方法及应用语
5、言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用人工神经网络n 处理单元按层次分布于神经网络的输入层、隐层和输处理单元按层次分布于神经网络的输入层、隐层和输出层中,分别称为输入节点、隐节点和输出节点出层中,分别称为输入节点、隐节点和输出节点n 输入节点负责接收和处理训练样本集中各输入变量输入节点负责接收和处理训练样本集中各输入变量值。输入节点的个数取决于输入变量的个数值。输入节点的个数取决于输入变量的个数n 隐节点负责实现非线性样本的线性变换,隐层的层隐节点负责实现非线性样本的线性变换,隐层的层数和节点个数可自行指定数和节点个数可自行指定n 输出节点给出关于输出变量的分类
6、预测结果,输出输出节点给出关于输出变量的分类预测结果,输出节点个数依具体问题而定节点个数依具体问题而定R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用人工神经网络n 人工神经网络的种类人工神经网络的种类: :从连接方式角度划分从连接方式角度划分n 根据层间连接方式,神经网络可分为根据层间连接方式,神经网络可分为n 前馈式神经网络:前馈式神经网络的节点连接前馈式神经网络:前馈式神经网络的节点连接是单向的,上层节点的输出是下层节点的输入是单向的,上层节点的输出是下层节点的输入n 反馈式神经网络:除单向连接外,输出节点的反馈式神经网络:除单向连接外
7、,输出节点的输出又作为输入节点的输入输出又作为输入节点的输入n 层内连接方式是指神经网络同层节点之间是否相互层内连接方式是指神经网络同层节点之间是否相互连接连接R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用节点:ANN的核心处理器n 节点:完整的节点由加法器和激活函数组成节点:完整的节点由加法器和激活函数组成R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用节点:ANN的核心处理器n 节点接收的输入用向量节点接收的输入用向量X表示表示,节点给出的输出用节点给出的输出用y表表示,节点与上层连接
8、的连接权重用向量示,节点与上层连接的连接权重用向量W表示,节点表示,节点的偏差用的偏差用表示,则第表示,则第j个节点的加法器定义为:个节点的加法器定义为:n 第第j个节点的激活函数定义为:个节点的激活函数定义为:R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用节点:ANN的核心处理器n 计算示例计算示例n 节点的意义节点的意义n 对于分类问题,一个节点是一个分割两个类别的超对于分类问题,一个节点是一个分割两个类别的超平面平面n 对于回归问题,一个节点是一个回归平面对于回归问题,一个节点是一个回归平面R R语言数据挖掘方法及应用语言数据挖掘方法
9、及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用节点:ANN的核心处理器n 建立人工神经网络的一般步骤建立人工神经网络的一般步骤n 第一,数据准备第一,数据准备n 输入变量的取值范围通常要求在输入变量的取值范围通常要求在0 0至至1 1之间,否则输入变之间,否则输入变量的不同数量级别将直接影响权重的确定、加法器的计量的不同数量级别将直接影响权重的确定、加法器的计算结果及最终的预测算结果及最终的预测n 第二,网络结构的确定第二,网络结构的确定n 隐层的层数和每层隐节点个数决定了网络的复杂程度隐层的层数和每层隐节点个数决定了网络的复杂程度n 对于隐节点的个数,目前尚没有权威的确定准则对于隐
10、节点的个数,目前尚没有权威的确定准则R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用节点:ANN的核心处理器n 建立人工神经网络的一般步骤建立人工神经网络的一般步骤n 第三,确定连接权重第三,确定连接权重n 第一步,初始化连接权重向量第一步,初始化连接权重向量W Wn 第二步,计算各处理单元的加法器和激活函数值,得到第二步,计算各处理单元的加法器和激活函数值,得到样本的预测值样本的预测值n 第三步,比较样本的预测值与实际值并计算预测误差,第三步,比较样本的预测值与实际值并计算预测误差,根据预测误差值重新调整各连接权重根据预测误差值重新调整各连
11、接权重n 重新返回到第二步,相应的计算和连接权重的调整将反重新返回到第二步,相应的计算和连接权重的调整将反复进行,直到满足迭代终止条件为止。至此,一组相对复进行,直到满足迭代终止条件为止。至此,一组相对合理的连接权重便被确定下来,超平面或回归平面也被合理的连接权重便被确定下来,超平面或回归平面也被确定下来确定下来R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用感知机模型n 感知机模型:最基本的前馈式双层神经网络模型,仅感知机模型:最基本的前馈式双层神经网络模型,仅由输入层和输出层构成。输出节点只有一个只能实现由输入层和输出层构成。输出节点只有
12、一个只能实现二分类的预测和单个被解释变量的回归预测二分类的预测和单个被解释变量的回归预测n 感知机的学习过程感知机的学习过程n 第一,开始时(即第一,开始时(即0 0时刻),初始化各个连接权重时刻),初始化各个连接权重和输出节点的偏差和输出节点的偏差R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用感知机模型n 第二,输入训练样本。第二,输入训练样本。t t时刻,根据样本输入变量值时刻,根据样本输入变量值x=(x1(t),x2(t),xp(t)和连接权重,计算输出节点的输出值为:和连接权重,计算输出节点的输出值为:n 第三,第三,t t时刻,根
13、据输出节点时刻,根据输出节点j的期望值的期望值yj(t),计算输出节点计算输出节点j的的期望值与输出值(或预测值)的误差期望值与输出值(或预测值)的误差n 第四,调整第第四,调整第i个输入节点和第个输入节点和第j个输出节点之间的连接权重和个输出节点之间的连接权重和以及第以及第j个输出节点的偏差个输出节点的偏差:n 第五,判断是否满足迭代终止条件。如果满足,则算法终止,第五,判断是否满足迭代终止条件。如果满足,则算法终止,否则重新回到第二步,直到满足终止条件为止。否则重新回到第二步,直到满足终止条件为止。权重调整策略遵从权重调整策略遵从deltadelta规则,规则,即权重的调整与误差及所连接即
14、权重的调整与误差及所连接的输入成正比的输入成正比R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用感知机模型R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用B-P反向传播网络n B-PB-P(Back PropagationBack Propagation)反向传播网络是一种典型的人工神反向传播网络是一种典型的人工神经网络,是一种前馈式多层感知机模型经网络,是一种前馈式多层感知机模型n B-PB-P反向传播网络的主要特点:反向传播网络的主要特点:n 包含隐层包含隐层n 反向传播反向传播n 激活
15、函数采用激活函数采用SigmoidSigmoid函数函数R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用B-P反向传播网络n B-PB-P反向传播网络中隐层的作用反向传播网络中隐层的作用n 实现非线性样本的线性化转化实现非线性样本的线性化转化R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用B-P反向传播网络n B-PB-P反向传播网络中的反向传播:相对于正向传播反向传播网络中的反向传播:相对于正向传播n 正向传播:样本信息从输入层开始,由上至下逐层经隐节正向传播:样本信息从输入层开始,由上至
16、下逐层经隐节点计算处理,上层节点的输出为下层节点的输入,最终样点计算处理,上层节点的输出为下层节点的输入,最终样本信息被传播到输出层节点,得到预测结果。正向传播期本信息被传播到输出层节点,得到预测结果。正向传播期间所有连接权重保持不变间所有连接权重保持不变n 反向传播:反向传播:B-PB-P反向传播网络无法直接计算隐节点反向传播网络无法直接计算隐节点的预测误差,它利用输出节点的预测误差来逐层估的预测误差,它利用输出节点的预测误差来逐层估计隐节点的误差,即将输出节点的预测误差反方向计隐节点的误差,即将输出节点的预测误差反方向逐层传播到上层隐节点,逐层调整连接权重,直至逐层传播到上层隐节点,逐层调
17、整连接权重,直至输入节点和隐节点的权重全部得到调整为止,最终输入节点和隐节点的权重全部得到调整为止,最终使网络输出值越来越逼近实际值使网络输出值越来越逼近实际值R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用B-P反向传播网络n B-PB-P反向传播网络中的反向传播网络中的SigmoidSigmoid函数函数n SigmoidSigmoid函数使节点的输出被限制在函数使节点的输出被限制在0 0 1 1范围内。范围内。对于回归问题,输出节点给出的是标准化处理后的对于回归问题,输出节点给出的是标准化处理后的预测值,只需还原处理即可;对于分类问题,
18、输出预测值,只需还原处理即可;对于分类问题,输出节点给出的是预测类别的概率值节点给出的是预测类别的概率值n SigmoidSigmoid函数较好地体现了连接权重修正过程中模函数较好地体现了连接权重修正过程中模型从近似线性到非线性的渐进转变进程型从近似线性到非线性的渐进转变进程n SigmoidSigmoid函数不但具有非线性、单调特点,还具有函数不但具有非线性、单调特点,还具有无限次可微的特点,这使无限次可微的特点,这使B-PB-P反向传播网络能够采反向传播网络能够采用梯度下降法调整连接权重用梯度下降法调整连接权重R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语
19、言数据挖掘方法及应用B-P算法:确定连接权重n 连接权值确定方法的特点:采用梯度下降法,每个时连接权值确定方法的特点:采用梯度下降法,每个时刻都本着使损失函数减小最快的原则调整连接权重刻都本着使损失函数减小最快的原则调整连接权重n t t时刻输出节点时刻输出节点j j的误差函数:的误差函数:n 损失函数损失函数L L是参数是参数W W的平滑非线性复杂函数,没有闭的平滑非线性复杂函数,没有闭合形式的解。采用迭代方式,在误差函数合形式的解。采用迭代方式,在误差函数L L曲率的曲率的局部信息引导下,搜索局部最小值局部信息引导下,搜索局部最小值R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语
20、言数据挖掘方法及应用语言数据挖掘方法及应用B-P算法:确定连接权重n 步骤:步骤:n 初始化:为参数向量初始化:为参数向量W W选取初始值选取初始值W W0 0n 第第i i次迭代,令:次迭代,令:n 重复上步直到损失函数达到局部最小值重复上步直到损失函数达到局部最小值n 多次重复启动,以避免局部而非全局最小多次重复启动,以避免局部而非全局最小R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用B-P连接权重W的调整n 连接权重调整的目标是使损失函数连接权重调整的目标是使损失函数L L达到最小。达到最小。t t时刻时刻连接权重调整应沿着损失函数曲
21、面下降最快的方向,连接权重调整应沿着损失函数曲面下降最快的方向,即负梯度方向进行即负梯度方向进行n 令:令: ,称为第,称为第j j个输出节点个输出节点t t时刻的局部梯度时刻的局部梯度n t t时刻第时刻第l l隐层的第隐层的第j j个节点的局部梯度定义为:个节点的局部梯度定义为:n 有:有:R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用学习率n 学习率学习率 对神经网络的权重调整有较为明显的影响对神经网络的权重调整有较为明显的影响n 学习率学习率 过大,连接权重改变量较大,可能导致网过大,连接权重改变量较大,可能导致网络工作的不稳定,且
22、当问题的解逼近误差最小点时络工作的不稳定,且当问题的解逼近误差最小点时可能会因震荡而永远达不到最小值的位置;学习率可能会因震荡而永远达不到最小值的位置;学习率 过小,超平面逼近正确目标的进程可能会很漫长过小,超平面逼近正确目标的进程可能会很漫长简单的误差函数:简单的误差函数:E=wE=w2 2+1+1R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用B-P反向传播网络的R实现n neuralnetneuralnet包中的包中的neuralnetneuralnet函数函数n neuralnet(neuralnet(输出变量输出变量 输入变量输入变
23、量,data=,data=数据框数据框名名,hidden=1,threshold=0.01,stepmax=100000,eff.fac=,hidden=1,threshold=0.01,stepmax=100000,eff.fac=误差函数名误差函数名,linear.outpu=TURE,learningrate=,linear.outpu=TURE,learningrate=学习学习率率,algorithm=,algorithm=算法名算法名) )n nnetnnet包中的包中的nnetnnet函数函数n nnet(nnet(输出变量输出变量 输入变量输入变量,data=,data=数据框
24、名数据框名,size=,size=隐节点个隐节点个数数,linout=FALSE/TREU,entropy=FALSE/TRUE,maxit=100,a,linout=FALSE/TREU,entropy=FALSE/TRUE,maxit=100,abstol=0.0001)bstol=0.0001)R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用Neuralnet函数的应用n neuralnetneuralnet函数的应用:精准预测顾客的消费行为函数的应用:精准预测顾客的消费行为n 建立神经网络模型建立神经网络模型n 评价输入变量的重要性:
25、广义权重评价输入变量的重要性:广义权重n 比较输入变量不同水平组合对输出变量的影响比较输入变量不同水平组合对输出变量的影响R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用利用ROC曲线确定概率分割值n ROCROC曲线曲线: : 接受者操作特性曲线,用于评价模型的分类接受者操作特性曲线,用于评价模型的分类性能,也是辅助确定概率分割值的有效工具性能,也是辅助确定概率分割值的有效工具n TP/(TP+FN)TP/(TP+FN):TPRTPR,称为敏感性,称为敏感性(Sensitivity)(Sensitivity):n TN/(FP+TN)TN/
26、(FP+TN):TNRTNRn 1 1TNRTNR:FPRFPR,称为特异性,称为特异性(SpecificitySpecificity)n TPRTPR和和TNRTNR同时较大,同时较大,FPRFPR较小,表明分类模型的分较小,表明分类模型的分类精度较高类精度较高R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用利用ROC曲线确定概率分割值n 典型的典型的ROCROC曲线的横坐标为曲线的横坐标为FPRFPR,纵坐标为,纵坐标为TPRTPRn 首先首先, ,将预测概率值按降序排序将预测概率值按降序排序n 然后然后, ,选择其中的几个典型值选择其中
27、的几个典型值(或所有值)依次作为概率分割(或所有值)依次作为概率分割值值 ,并计算在各概率分割值,并计算在各概率分割值 下,下,分类模型的当前累计分类模型的当前累计TPRTPR和和FPRFPRn 恰当的概率分割值恰当的概率分割值 应处于应处于TPRTPR较较大且大且FPRFPR较小,如较小,如2 2或或3 3处。或处。或TPRTPR与与FPRFPR之比最大,如之比最大,如2 2处。处。R R语言数据挖掘方法及应用语言数据挖掘方法及应用R R语言数据挖掘方法及应用语言数据挖掘方法及应用利用ROC曲线确定概率分割值n 绘制绘制ROCROC曲线的曲线的R R函数函数n 计算计算TPRTPR和和FPRFPRn prediction(predictions=prediction(predictions=概率向量概率向量, labels=, labels=类别向量类别向量) )n performance(performance(对象名对象名,measure=,measure=缩写缩写1,x.measure=1,x.measure=缩写缩写2)2)n 画图画图n plot(plot(对象名对象名, colorize=FALSE/TRUE, , colorize=FALSE/TRUE, print.cutoffs.at=c()print.cutoffs.at=c()29 结束语结束语
限制150内