数据挖掘中分类技术应用

更新时间:2023-08-20 05:51:01 阅读量: 高等教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

分类技术在很多领域都有应用,例如可以通过客户分类构造一个分类模型来对银行贷款进行风险评估;当前的市场营销中很重要的一个特点是强调客户细分。客户类别分析的功能也在于此,采用数据挖掘中的分类技术,可以将客户分成不同的类别,比如呼叫中心设计时可以分为:呼叫频繁的客户、偶然大量呼叫的客户、稳定呼叫的客户、其他,帮助呼叫中心寻找出这些不同种类客户之间的特征,这样的分类模型可以让用户了解不同行为类别客户的分布特征;其他分类应用如文献检索和搜索引擎中的自动文本分类技术;安全领域有基于分类技术的入侵检测等等。机器学习、专家系统、统计学和神经网络等领域的研究人员已经提出了许多具体的分类预测方法。下面对分类流程作个简要描述:

训练:训练集——>特征选取——>训练——>分类器

分类:新样本——>特征选取——>分类——>判决

最初的数据挖掘分类应用大多都是在这些方法及基于内存基础上所构造的算法。目前数据挖掘方法都要求具有基于外存以处理大规模数据集合能力且具有可扩展能力。

神经网络

神经网络是解决分类问题的一种行之有效的方法。神经网络是一组连接输入/输出单元的系统,每个连接都与一个权值相对应,在将简单的单元连接成较复杂的系统后,通过并行运算实现其功能,其中系统的知识存储于网络结构和各单元之间的连接权中。在学习阶段,通过调整神经网络的权值,达到对输入样本的正确分类。神经网络有对噪声数据的高承受能力和对未经训练数据的模式分类能力。神经网

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

络概括性强、分类精度高,可以实现有监督和无监督的分类任务,所以神经网络在分类中应用非常广泛。

在结构上,可以把一个神经网络划分为输入层、输出层和隐含层(见图4)。网络的每一个输入节点对应样本一个特征,而输出层节点数可以等于类别数,也可以只有一个,(输入层的每个节点对应一个个的预测变量。输出层的节点对应目标变量,可有多个)。在输入层和输出层之间是隐含层(对神经网络使用者来说不可见),隐含层的层数和每层节点的个数决定了神经网络的复杂度。

除了输入层的节点,神经网络的每个节点都与很多它前面的节点(称为此节点的输入节点)连接在一起,每个连接对应一个权重Wxy,此节点的值就是通过它所有输入节点的值与对应连接权重乘积的和作为一个函数的输入而得到,我们把这个函数称为活动函数或挤压函数。如图5中节点4输出到节点6的值可通过如下计算得到:

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

W14*节点1的值+W24*节点2的值

神经网络的每个节点都可表示成预测变量(节点1,2)的值或值的组合(节点3-6)。注意节点6的值已经不再是节点1、2的线性组合,因为数据在隐含层中传递时使用了活动函数。实际上如果没有活动函数的话,神经元网络就等价于一个线性回归函数,如果此活动函数是某种特定的非线性函数,那神经网络又等价于逻辑回归。

调整节点间连接的权重就是在建立(也称训练)神经网络时要做的工作。最早的也是最基本的权重调整方法是错误回馈法,现在较新的有变化坡度法、类牛顿法、Levenberg-Marquardt法、和遗传算法等。无论采用那种训练方法,都需要有一些参数来控制训练的过程,如防止训练过度和控制训练的速度。

决定神经网络拓扑结构(或体系结构)的是隐含层及其所含节点的个数,以及节点之间的连接方式。要从头开始设计一个神经网络,必须要决定隐含层和节点的数目,活动函数的形式,以及对权重做那

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

些限制等,当然如果采用成熟软件工具的话,他会帮你决定这些事情。 在诸多类型的神经网络中,最常用的是前向传播式神经网络,也就是我们前面图示中所描绘的那种。我们下面详细讨论一下,为讨论方便假定只含有一层隐含节点。

可以认为错误回馈式训练法是变化坡度法的简化,其过程如下: 前向传播:数据从输入到输出的过程是一个从前向后的传播过程,后一节点的值通过它前面相连的节点传过来,然后把值按照各个连接权重的大小加权输入活动函数再得到新的值,进一步传播到下一个节点。

回馈:当节点的输出值与我们预期的值不同,也就是发生错误时,神经网络就要 “学习”(从错误中学习)。我们可以把节点间连接的权重看成后一节点对前一节点的“信任” 程度(他自己向下一节点的输出更容易受他前面哪个节点输入的影响)。学习的方法是采用惩罚的方法,过程如下:如果一节点输出发生错误,那么看它的错误是受哪个(些)输入节点的影响而造成的,是不是他最信任的节点(权重最高的节点)陷害了他(使他出错),如果是则要降低对他的信任值(降低权重),惩罚他们,同时升高那些做出正确建议节点的信任值。对那些收到惩罚的节点来说,他也需要用同样的方法来进一步惩罚它前面的节点。就这样把惩罚一步步向前传播直到输入节点为止。 对训练集中的每一条记录都要重复这个步骤,用前向传播得到输出值,如果发生错误,则用回馈法进行学习。当把训练集中的每一条记录都运行过一遍之后,我们称完成一个训练周期。要完成神经网络

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

的训练可能需要很多个训练周期,经常是几百个。训练完成之后得到的神经网络就是在通过训练集发现的模型,描述了训练集中响应变量受预测变量影响的变化规律。

由于神经网络隐含层中的可变参数太多,如果训练时间足够长的话,神经网络很可能把训练集的所有细节信息都“记”下来,而不是建立一个忽略细节只具有规律性的模型,我们称这种情况为训练过度。显然这种“模型”对训练集会有很高的准确率,而一旦离开训练集应用到其他数据,很可能准确度急剧下降。为了防止这种训练过度的情况,我们必须知道在什么时候要停止训练。在有些软件实现中会在训练的同时用一个测试集来计算神经网络在此测试集上的正确率,一旦这个正确率不再升高甚至开始下降时,那么就认为现在神经网络已经达到做好的状态了可以停止训练。

图6中的曲线可以帮我们理解为什么利用测试集能防止训练过度的出现。在图中可以看到训练集和测试集的错误率在一开始都随着训练周期的增加不断降低,而测试集的错误率在达到一个谷底后反而开始上升,我们认为这个开始上升的时刻就是应该停止训练的时刻。

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

神经元网络和统计方法在本质上有很多差别。神经网络的参数可以比统计方法多很多。如图4中就有13个参数(9个权重和4个限制条件)。由于参数如此之多,参数通过各种各样的组合方式来影响输出结果,以至于很难对一个神经网络表示的模型做出直观的解释。实际上神经网络也正是当作“黑盒”来用的,不用去管“盒子”里面是什么,只管用就行了。在大部分情况下,这种限制条件是可以接受的。比如银行可能需要一个笔迹识别软件,但他没必要知道为什么这些线条组合在一起就是一个人的签名,而另外一个相似的则不是。在很多复杂度很高的问题如化学试验、机器人、金融市场的模拟、和语言图像的识别,等领域神经网络都取得了很好的效果。

神经网络分类算法的重点是构造阈值逻辑单元,一个值逻辑单元是一个对象,它可以输入一组加权系数的量,对它们进行求和,如果

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

这个和达到或者超过了某个阈值,输出一个量。如有输入值X1, X2, ..., Xn 和它们的权系数:W1, W2, ..., Wn,求和计算出的 Xi*Wi ,产生了激发层 a = (X1 * W1)+(X2 * W2)+...+(Xi * Wi)+...+ (Xn * Wn),其中Xi 代表样本的不同特征,Wi是实时特征评估模型中得到的权系数。

对于单输出型,网络的每一个输入节点对应样本一个特征,而输出层节点只有一个,为每个类建立一个这样的网络,对每一类进行分别训练,将属于这一类的样本的期望输出设为1,而把属于其他类的样本的期望输出设为0;在识别阶段,将未知类别的样本输入到每一个网络,如果某个网络的输出接近1(或大于某个阈值,比如0.5 )则判断该样本属于这一类;如果有多个网络的输出均大于阈值,则或者将类别判断为具有最大输出的那一类,或者做出拒绝。

神经网络的另一个优点是很容易在并行计算机上实现,可以把他的节点分配到不同的CPU上并行计算。

在使用神经网络时有几点需要注意:第一,神经网络很难解释,目前还没有能对神经网络做出显而易见解释的方法学。

第二,神经网络会学习过度,在训练神经网络时一定要恰当的使用一些能严格衡量神经网络的方法,如前面提到的测试集方法和交叉验证法等。这主要是由于神经网络太灵活、可变参数太多,如果给足够的时间,他几乎可以“记住”任何事情。

第三,除非问题非常简单,训练一个神经网络可能需要相当可观的时间才能完成。当然,一旦神经网络建立好了,在用它做预测时运

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

行时还是很快的。

第四,建立神经网络需要做的数据准备工作量很大。一个很有误导性的神话就是不管用什么数据神经网络都能很好的工作并做出准确的预测。这是不确切的,要想得到准确度高的模型必须认真的进行数据清洗、整理、转换、选择等工作,对任何数据挖掘技术都是这样,神经网络尤其注重这一点。比如神经网络要求所有的输入变量都必须是0-1(或-1 -- +1)之间的实数,因此像“地区”之类文本数据必须先做必要的处理之后才能用作神经网络的输入。

神经网络是基于经验风险最小化原则的学习算法,有一些固有的缺陷,比如层数和神经元个数难以确定,容易陷入局部极小,还有过学习现象,这些本身的缺陷在SVM算法、进化算法中可以得到很好的解决。

在计算机科学中,进化算法实质上是一种优化处理过程;但这种过程与传统的优化方法不同,传统的优化方法都是用代价函数来衡量动作的行为,从而通过选择一个好的动作使操作的对象得到优化;绝大多数典型的优化方法是通过计算代价函数的梯度或高阶统计值进行优化的,一般情况下,这类方法只能得到局部极优值,并且容易受到随机干扰的影响。而进化的方法符合达尔文“适者生存”和随机信息交换思想,既消除解中不适应因素,又利用了原有解中的知识,且不需要微分等高阶信息,从而使优化过程加快,最终获得全局极优解。

西安电子科技大学数据挖掘课程课件,关于分类聚部分的

因此基于进化算法的神经网络正日益成为智能计算领域中研究的热点,并在某些领域中得到了成功的应用。

本文来源:https://www.bwwdw.com/article/qu6j.html

Top