等份,因此所得到的每一分区是一个面积相同但非正方形的区域。藉由这样的分区方式不仅方便作业,更可以获得较均质的数据,每一分区可涵盖从平原至山地的范围,不会仅局限于全是平原或山地。以地质为例,不会有某一区只存在一、二种地质条件,缺乏其它的地质条件,造成分析上的不便。使用的数据格式与关联法则探勘相同,将数值数据转换为类别数据,然后针对每一属性计算每一分区内之山崩网格数,并且加以排序,另外再计算各属性值在该区内所占的网格数并加以排序,最后再以公式(1)计算崩塌与该属性质值的关联系数,来探讨环境因子与山崩之间的关联性。
第四节 预测型数据探勘模式
一、判定树算法(Decision Tree)
判定树算法所产生的树状结构相较于其他算法(不论是回归类的公式或是类神经网络完全封闭式的黑箱结构),比较容易让人理解,这一点其实是相当重要的,因为在导入资料探索研究或项目时,有时候后不只是希望有准确的模型就好,对决策者来说,更重要的是能否从规则的内容中获得启发,此时,规则是否能够以人类所能理解的形式呈现就显得相当重要了。这也就是为什么在Kdnuggets针对企业数据探索所做的调查结果显示,判定树以高达16%的使用比例位居所有数据探索技术的第一名,而类神经网络则为9%的使用率排名第五。美国NASA曾经利用这样的技术,结合了地质学家、天文学家与图像处理专家,找出许多金星上的小火山以及新的星体和银河,获得了比人类专家判释更好的效果(Fayyad et al., 1996)。另外,Kompare and Dzeroski(1997)曾经以类似的方法应用在水质分类预测,Sester(2000)则将ID3方法应用在非结构性空间对象的分类判释。
判定树算法有相当多的版本,一开始由澳洲学者昆兰(Quilan, 1986)所开发,之后以此为演化基础,产生了有C4、C4.5、C5、CART、CHAID、QUEST等数种修改版的算法。本研究选择以C4.5(Quilan, 1993)判定树算法做为逻辑式模式的代表,建构其中之一个预测模式。
判定树是采用树状分岔的架构来产生规则(图3-9),它适用于所有的分类问题,例如银行信用卡授信、直销响应、顾客流失预测、甚至空间议题如本研究之山崩预测议题,皆可应用判定树算法来产生容易理解规则。
在分类问题中,最完美的状况就是一刀切下来,一个节点包含了所有100%山崩的数据,另一则是100%不会山崩的地方,但世事总不尽如人意,所以不管使用哪一个变量来产生子节点,其子节点一定会有分布不纯净的状况。因此,我们希望找出哪一个变量的效果最好时,就必须判断根据哪一个变量分岔之后,产生的子节点总数据纯度最高?此时就产生了几个分岔准则(Split Criteria)的条件:
1. 纯净度是一个抽象的概念,必须要以数学公式让他可以量化。 2. 每个变量所产生的分岔数目不同,必须要能够提供纯净度的加总方式,来评估到底使用哪一个变量能够让纯净度最高。
3. 子节点的纯净度总合必须能和母节点的纯净度互相比较,以决定该分岔是否需要保留,因为若是子节点无法显著比母节点拥有更高的纯净度时,此时该分岔就一点意义都没有了。
4. 如果输入变量是连续变量时,如何才能快速搜寻,找出最好的连续变量切点,以达到最高的纯净度。
接着再持续以上的步骤,让每一个产生的子节点都是做根节点,再继续试算下一个最佳的分岔变量,继续产生新的分岔,就这样,判定树就会开始生长,一直到子节点再也无法产生纯净度更高的分岔为止。 分岔准则是根据增益比值(gain ratio)来计算,它首先根据每一节点选择一个具有最大信息增益值(information gain)属性,这一组纯度尚未净化的数据集
Entropy(S)???Pilog2(Pi)i?1cS之熵值的计算如下;
Pi是指预测因子选项i对于分类数据的切分率,即类别i在数据集S中所占
的比率,c为类别的数目。
其中,|S|为数据集S样本数,|Sv|为数据集中属性A等于v的样本数。
Gain(S,A)?Entropy(S)??vSvSEntropy(Sv)其中entropy表示乱度,这个观念来自热力学,用来表示物体分布的分散状况,乱度越高,则越无规则,因此判定树算法的目标就是希望能够降低数据分类结果的乱度。比较各个属性值的增益比值,挑选具有最高增益比值的变量来当做分岔变数。
N0. 属性数据 类别 1 2 3 4 5 6 7 8 9 10 外观 气温 湿度 强风 晴 热 潮湿 否 晴 热 潮湿 是 多云 热 潮湿 否 下雨 适中 潮湿 否 不适 不适 适合 适合 外觀 晴 多雲 下雨 溼度 高 不適合
正常 適合
適合 是 強風 否 適合
下雨 微凉 正常 否 适合 下雨 微凉 正常 是 多云 微凉 正常 是 晴 适中 潮湿 否 不适 适合 不适 不適合
晴 微凉 正常 否 适合 下雨 适中 正常 否 适合 图3-9 产生判定树之树状架构
但是,如果按照前述流程制作出来的判定树,可以在训练组产生极佳的效果,但是如果遇到新案例,就会产生过度学习的效果,而使预测能力大大降低,为了避免这样的问题发生,因此后来的研究再针对分岔时的流程做改进;
1. 算法会将全体数据随机分成训练组及鉴效组。 2. 根据分岔准则利用训练组资料产生第一个分岔点。
3. 利用鉴效组数据验证第一个分岔点是否为最佳分岔,若规则可再现,则继续进行后续分岔,若是不能再现则舍弃该变量,重新从剩余变量中筛