选出最佳变量来。
4. 反复进行上一步骤,一直到没有纯净的子节点可以产生为止,此时末端的子节点称为「叶节点」。
5. 利用修剪技术,将无效或多余的分岔点修剪掉。
因此判定树算法可以看作是两股力量拉扯下的结果,一种是利用变量产生分岔的成长力量,另外是透过验证及修剪来抑制判定树成长的力量。一棵成长完成的判定树,除了有完整的树状结构可以提供分类规则外,更重要的是他还可以提供机率值来供我们将预测的结果排序。以图3-9为例,从根节点到任何一个叶节点都代表一条规则,指派到叶节点的案例就是符合这条规则的数据。因此我们可以计算叶节点案例的预测变量分布状况,例如一条规则中会山崩的机率为3.5%,而不会山崩为96.5%,此时这条规则分类的结果是不会山崩,而山崩机率只有0.035。
由于判定树算法具有计算增益比值,挑选具增益变量的能力,能从一大堆变数中筛选出有用的变数,很适合做为先导模式,可将它与类神经网络联合使用,帮助类神经网络找出重要的参数(Berry and Linoff, 2000)。因此,本研究以判定树算法做为第一个建立的模式,除了可帮助找出重要影响因子外,他的成效也可做为后续模式建置调校上比较的参考。
本研究所使用的建置方法则是以Microsoft SQL Server 的 Analysis Service来建置Decision Tree,搭配微软DSO (Decision Support Object) 之COM组件与VB.Net程序来操作,其操作语法与SQL类似,可方便的进行建模、预测与评估。
二、类神经网络技术(Neural Network)
在商业、科学和学术理论中,类神经网络的研究持续受到关注,这是因为类神经网络已被证实时用于数值的预测和连续性的演进均有良好的成效,对于非线性问题的处理也有良好的表现,本研究选择以倒传递网络(Back-Propagation Network;BPN)做为数学式模式的代表,建构其中之一个预测模式。
图3-10 倒传递网络架构图
类神经网络提供一个数学模式来尝试去小型化人脑。知识通常被表示成互相连接所成的多层处理器,这些处理器常被视做神经元,以表示人脑神经中的关联性。每个节点各有加权值连接至邻接层中的其他点,个别的节点接收从所连接的节点输入,并且使用一个简单且包含加权的函数来运算输出值。
倒传递网络(Back-Propagation Network;BPN)属于监督式的学习网络,是目前类神经网络学习模式中应用最广的模式,由于它的「隐藏层」,使得网络可以表现输入处理单元间的相互影响。通常给定的隐藏层数够多,理论上可以逼近任何的函式(Hagan et al., 1996),但是事实上,处理的单元数越多,越慢达到收敛的状态,隐藏层的单元数目一般可用(输入+输出)/2、
或√(输入*输出) (叶怡成,1995),此外一般问题取一层隐藏层已经足够。
图3-11 倒传递网络的权重调整
图3-10左为一个简单的倒传递模型,p为输入值、w为权重连结、Σ是一个神经元、b代表一个可以调整的常数值、n为神经元的原始输出、f为转换函数、a为输出值,所以一个输入值透过一个神经元的运作,可以产生一个输出值。图5.4右也是一个倒传递模型,它有三个神经元,因此可以开始调整每个输入值与神经元间的权重关系,因为有三个神经元,可对应产生三个输出值,更多的隐藏层同样依此类推,加入一层新的神经元即可,不过这个倒传递的网络架构基本上仍是一个a=f(Wp+b)的简单函数。
图3-11可以简单的以平面几何的方式,说明类神经网络权重的调整过程,1, 2, 3代表输入的数据值,其中1黑色点是一类、2, 3白色点是另一类,前述a=wp+b中,w代表区分这两类输入值的函数斜率,b=0通过原点,A, B, C代表每次数据输入后权重的调整过程,每次的数据输入后,都会适度的调整分类的界线(Decision Boundary),依此类推,也同理可以说明整个权重向量的调整过程。
神经网络运作时NET即代表一个神经元,每个神经元都是一个完整的神经元网络架构,以NETj表示。 NETj = Σ(WijXi –θj) ,其中:
Wij :神经元i与神经元j间的连结强度,即连结加权值 Xi :神经元i传来的输入讯号
θj :神经元j的阈值
一个神经元可以对应一个输出讯号,j个神经元就对应了j个输出讯号,这里使用的转换函数为双弯曲函数。 Yj = f(NETj) ,其中: Yj :神经元输出讯号
f(NETj) = 1/(1+e-NETj) :双弯曲函数(sigmoid function)
每个输出讯号都可以和观测值比对它们的差异δj。 δj = Tj – Yj ,其中: Tj :观测输出向量 Yj :输出输出向量
E = (1/2)Σ(Tj -Aj)2为误差函数,学习的过程是用最陡坡降法使误差函数最小化,每笔学习数据都小幅调整加权值的大小,调整的幅度和输出值与观测值的差异δj成正比。 ΔWij =η*δj*Xi ,其中:
η:学习速率,控制每次加权值改变的幅度
最后以全部测试范例的误差的均方根,重复直到误差不再有明显变化,作为收敛程度的标准。 √Σ(Tj-Yj)2/N ,其中: N :全部测试的范例数目
本研究关于类神经网络的部份,是以C++程序自行建立模式及操作接口,再透过之前判定树算法增益比值的计算后,以判定树算法所找出的变量设定类神经网络模式的输入因子的值,在经过正规划化成0~1之间的实数后,透过类神经网络内部权重矩阵的运算后,得到一个介于0~1之间输出值,他代表了发生山崩与不会发生崩的可能值,越接近1者可能性越高。经过尝试与错误多次调整后,以一层隐藏层、30个内部节点所构成的网络结构获得最佳的效果,以此做为模式评估与整合的依据。
三、案例式概念学习(Exemplar-Based Concept Learning)
本研究在进行距离式数据探勘技术的建置时,选用案例式概念学习算法当做代表,因为他具有处理数值与类别型数据而无需做转换的能力,且较一般案例式推理(Case Based Reasoning)型的数据探勘技术在执行上较有效率,非常适用于类似本研究案例之使用。
案例式概念学习会根据训练数据集(Training Data Set)中标示为分类字段的值来建立分类别,产生一个三层状的树状结构,图3-12展示出这个树状结构的大略型式。在资料层里的每个节点,代表数据里的每一笔数据范例,用以定义概念层的概念类别。在概念层里的节点,则摘要统计其在资料层的子节点所包含的属性值。树的根节点则储存了整个数据的摘要信息。
概念層
根節點
C1 C2 ….. Cn 資料層
L11 L12 … L1j L21 L22 …
L2k Ln1 Ln2 … Lnl 图3-12 案例式概念学习架构图
案例式概念学习所使用的评估方式是使用类别相似分数(以距离的观念来评估类别内案例间彼此的接近程度),他被储存在根节点和概念层的节点里。类别相似分数可以评估全部概念类别的相似度。运作方式大致如下; 1. 假设经输入训练集数据产生树状结构,有:
a. 一群概念层节点 C1,C2…Cn。
b. 将C1,C2…Cn的类别相似分数相加,然后除以n得到平均类别相似分数S。