于 雪 芹
(吉林建筑大学测绘与勘查工程学院,长春 130118)
决策树分类法主要用在对信息进行分类和聚类中,其核心是如何构造精度高,规模小的决策树[1].决策树是一棵树,根节点对应的数据集是训练集E,其他内部节点对应的是E的子集;内部节点是最佳扩展属性(测试属性)值,内部节点对应的属性值是不纯的;叶节点是类标号属性值,叶节点对应的数据集是纯的训练集.构造决策树是利用信息论和数理统计中的方法(信息增益)寻找数据库中具有最大信息量、最重要的数据项.具有最高信息增益的属性选作给定集合的测试属性,通过自上而下的递归方法建立决策树[2].为了提高效率,降低误判率,对树结构还要进行剪枝,即剪去那些不会增大树的错误预测率的分枝.
MapObjects(简称MO)是ESRI公司的GIS产品中的一个基于COM技术的地理信息系统控件.MapObjects由一个称为Map的ActiveX控件和35个可编程的ActiveX对象组成.通过MO可完成以下甚至更多功能[3]:① 显示一张多图层地图(道路,河流,边界);② 地图的放大、缩小、漫游;③ 生成图形的点、线、圆、多边形等特征;④ 说明注记;⑤ 识别地图上被选中的特征吗;⑥ 通过线、方框、区域、多边形、圆来拾取物体;⑦ 拾取距某参照物特定范围内的物体;⑧ 通过SQL语句来查询物体;⑨ 对选取物体进行基本统计等.
MO不是直接供用户使用,而是供开发人员使用的制图与GIS功能控件,因此,与VB相结合进行GIS系统开发.向VB工具箱中添加MO控件,在VB界面环境下,利用MO进行GIS应用软件的开发.其优点是VB相对于其他语言简单易学,具有较强的多媒体和数据库管理功能,适合大多数GIS应用,MO像其他控件一样,通过属性、方法和事件与用户和客户程序之间进行交互.
以湖北省16市受教育水平情况进行分类为例,来说明决策树分类法的可视化应用.根据湖北省16个市区数据资料:在人口、年平均工资、在岗职工人数三个方面均有具体的数据,存放在hbdb.mdb表文件中.在VB界面环境下采用决策树分类法,生成一棵决策树,利用MO的图形可视化功能,可以查询满足一定条件的城市,并以不同的颜色显示.
MO控件是通过Shape文件来组织图形信息和属性信息的.这里的湖北省市区图已转换成shape文件.需把MO控件添加到VB的工具箱中,在Form上添加Add Layers按钮,利用MO中的对象DataConnection和VB中的CommonDialog控件编辑按钮Add Layers,来确定Shape文件的路径和文件名,便于加载湖北省市区图hb.shp文件.VB支持的缺省数据库是ACCESS的MDB格式,MO控件通过MapLayer对象AddRlateAddRlate (toField,sourceField,fromField)函数来与外部数据库表建立关系[4].
2.2.1 分析Access表中hbdb.mdb数据
样本训练集samples包括武汉、黄石、十堰、荆州、宜昌、襄樊、鄂州、荆门、孝感、黄冈、咸宁、恩施自治州、随州、仙桃、天门和潜江共16个样本.属性attribute_list包括人口、年平均工资、在岗职工人数,其中,人口分为>500万人,<300万人,300万人~500万人3类;年平均工资分为≥1万元和<1万元两类;在岗职工人数分为≥30万人和<30万人两类.类标号属性class label attribute包括城市居民受教育水平高(用+表示)、城市居民受教育水平低(用-表示);测试属性test_attribute根据计算信息增益值来确定.
2.2.2 决策树归纳
根据Access表中数据,设C1对应城市居民受教育水平高(+表示),C2对应城市居民受教育水平低(-表示),类C1有9个,类C2有7个,可计算出给定样本分类的期望信息:
下面从人口属性开始计算每个属性的信息增益,观察人口的每个样本值的C1和C2的分布:
对于人口=‘<300万人’:s11=2,s21=5,I(s11,s21)=0.863
对于人口=‘300万人~500万人’:s12=2,s22=2,I(s12,s22)=1
对于人口=‘>500万人’:s13=5,s23=0,I(s13,s23)=0
按人口属性对湖北省市区样本分类的期望信息为:
这种划分的信息增益为:
Gain(A)=I(s1,s2)-E(A)=0.989-0.628=0.361
按照同样方法得出‘年平均工资属性’的信息增益为0.696,‘在岗职工人数属性’的信息增益为0.559.比较3个信息增益值,‘年平均工资属性’的信息增益值最大,所以,首先设该属性为测试属性,标记一个内部节点,生成按‘年平均工资属性’划分的决策树.由此树可看出年平均工资属性‘<1万元’的均为城市居民受教育水平低的城市(-),所以,对于这个分枝不必再分,而对于‘≥1万元’的城市需要进行第二次划分.同样对此分枝的10个样本进行分类,计算得出‘人口属性’信息增益值为0.190和‘在岗职工人数属性’的信息增益值为0.198.选择较大者,因此按‘在岗职工人数属性’ 继续进行划分,得到第二次分类生成的决策树.最后再按‘人口属性’进行第三次划分,生成分类决策树流程图如图1所示.
图1 生成最终决策树流程
图2 16城市受教育水平可视化分类结果图
可视化技术将数据以图形方式显示,让用户可以直观地感受数据的真实形式.本文利用MO的可视化功能,在VB界面环境下,采用决策树分类方法,实现了湖北省城市分类的可视化应用.利用VB的画图工具创建决策树,结合MapObjectst的SearchExpression选择图形特征查询方法进行逻辑查询.这种查询方式是按属性数据库中字段的值查询图形特征,查询表达式的语法相当于SQL的“Where”从句[5].湖北省市区分类的最终决策树与湖北省市区图相对应.决策树中的内部节点是城市的属性,如人口、年平均工资、在岗职工人数;分类的叶节点是类标号属性,如城市居民受教育水平高、城市居民受教育水平低,最终决策树可直观的显示这16个城市的分类结果(如图2所示).根据测试属性‘年平均工资’首先能确定图中最浅颜色的城市如:鄂州、恩施、随州、仙桃、天门、潜江这六个城市受教育水平低,再根据‘在岗职工人数’能够确定图中较浅颜色的城市如:武汉、十堰、荆州、宜昌、襄樊、孝感、黄冈为受教育水平高的城市,最后根据‘人口属性’将黄石和咸宁(图中最深颜色表示)这两个城市与荆门(图中较深颜色表示)区分开.查询满足条件的城市,在湖北省市区图上将会以不同颜色显示,属性与图形对应,实现了湖北省市区的可视化分类.
本文利用决策树分类法对湖北省16市区进行分类,结合MO实现可视化查询与显示.这种分类方法优点是较容易生成决策树,根据决策树能生成分类规则.但测试属性都是离散值,如果城市属性数目增加时,生成的树较复杂,易产生碎片或重复,且信息增益值有倾斜,根据信息增益的不同取值可能生成有差别的决策树.因此,该算法还需加强进行剪枝或可伸缩性处理.
参 考 文 献
[1] 邸凯昌.空间数据挖掘与知识发现[M].湖北:武汉大学出版社,2001:12-14.
[2] Jiawei Han,Micheline Kamber,范 明,孟小峰.数据挖掘概念与技术[M].北京:机械工业出版社,2001:35-40.
[3] 王伟长.地理信息系统控件(ActiveX)—MapObjects培训教程[M].北京:科学出版社,2000:50-58.
[4] 孙 华,林 辉.面向对象的决策树分类技术[J].中南林业科技大学学报,2007(4):39-43.
[5] 李 芳,李一媛.不确定数据的决策树分类算法[J].计算机应用,2009(11):3092-3095.