改进的SPRINT算法及其在体质数据分析中的应用
2014-10-18丁亚芝郑志高
丁亚芝,郑志高,马 嵘
1 前言
体质数据分析的一个重要方面就是为发展国民体育运动、改善体育教学提供依据。近年来,国内、外在人体体质数据分析方面,主要是对体质数据获取的测试方法以及测试仪器等方面的研究,很少使用数学的分析方法对数据处理方法、数据所代表的结果进行分析和比较。体育科学积累了大量的测试结果,传统的研究方法缺乏对数据的深层次分析,隐藏在数据背后的知识和相关的有用信息都没有得到充分挖掘。当前,统计学已经在体育科学研究中显示出前所未有的成果,但是也暴露出自身的一些局限性,使得相关数据分析工作不尽如人意。数据挖掘技术是一门以数据为基础的科学,是一种能够帮助决策者抽取隐藏在数据背后的有用信息和科学的方法[1]。由于目前一些直观判断人体体质状况的指标的测试都相对复杂,并且对测试方法有着较高的要求,但是在实际常规体质判断中我们往往希望根据一些简单测试的数据即可判断受试者的体质质量。因此,如何根据简单测量指标判断体质状况是目前体育数据分析中的一个重要课题。决策分析技术的出现使得这一课题有着重大突破,基于决策分析的方法,可以根据身高、体重等一些简单的体质指标结合一些能够直接确定人体体质状况的指标建立决策分析树,并利用部分测试数据对决策树的准确性进行校验。确定一棵准确的决策树之后即可根据一些简单的测量指标快速判断人体体质状况。
于岱峰等[12]以人体握力肌肉力量测试数据研究为例将ID3算法应用于人体肌肉力量数据分析中,该项实验在单机环境下取得了良好的效果。但是,ID3算法存在以下一些缺点,导致该方法在大量数据分析和连续数据分析中的效果还有待提高[17]:1)算法注重特征的选择,并且在特征选择时注重特征值数目较多的特征,但是数目多的特征并不一定是最优特征,因此,该方案还有待进一步优化;2)对噪声较为敏感,训练集中正例与反例的比例很难控制(图1);3)学习逻辑表达的能力较差,并且决策树随着训练集的变化而变化。
图1 噪音数据对决策分析的影响示意图Figure 1.Influence of Noise Data for Decision Analysis
由于体质监测数据,如握力、血压、三围等都是连续数据,并且在进行全国联网数据分析时涉及的都是海量数据分析。基于ID3算法的这样一些缺陷以及SPRINT算法在处理海量数据方面的一些优势,本文采用趋势选择的方法对连续属性分割的情况进行剪枝提出基于趋势选择的SPRINT算法(Trend Selection Based Scalable Parallelizable Induction of Decision Trees,简称TESTSPRINT算法),用以解决ID3算法和SPRINT算法在处理连续数据方面的一些缺陷。理论分析和实验证明,本文提出的TESTSPRINT算法具有以下一些优点:1)保留了SPRINT算法支持多CUP的特性,处理海量数据时的时间和空间复杂度较低;2)引入了趋势选择的概念,对于连续区间属性的处理可以通过趋势选择进行预处理剪枝,极大减小了计算复杂度,减小了在线计算开销;3)算法具有较低的时间和空间开销,对体育数据分析具有较高的准确性。
2 相关工作
2.1 体质数据分析
随着数据的积累,采用数据挖掘的方法进行数据分析工作已经成为科学研究的基本的方法,不同的学者采用了不同的数据挖掘方法处理体质等相关数据。李慧玲等[3]从数据仓库决策支持的角度对数据挖掘和数据仓库在高校体育数据分析中的可行性进行了论证。桑国强等[8]应用数据挖掘及逻辑推理法对体育院校辅导员不同的管理行为及与学生管理效益之间的关系进行了研究,得出了动态平衡型管理行为可提高管理工作的效益的结论。茅洁等[5]将神经网络的数据挖掘理论与生化指标相结合,利用神经网络自学习的特性分析预测运动成绩。茅洁等[6]将灰色ART聚类分析方法的理论与生化指标数据相结合,对运动成绩进行了分析预测,研究了灰色ART聚类分析方法在运动生化指标的应用及意义,为运动员竞技体能的分析、解释、预测提供了量化依据,提高了教练员培养后备运动员的科学性、智能性,同时,也为正确跟踪每个运动员的不同竞技状况,采用不同的科学训练指导方案、训练手段提供了科学依据。赵会群等[13]将马尔科夫过程模型应用于体育比赛战术分析评价,成功预测了比赛制胜的关键。郑丹青等[14]提出了一个基于决策树的胃癌临床医疗信息分析应用研究模型,运用SPRINT算法,构建胃癌术后复发的危险因素分析模型。通过对模型分析,寻找疾病的临床诊断、治疗和预后的关系,证实了胃癌术后复发首要危险因素。
2.2 SPRINT算法
为了克服原有SPRINT算法[19]的不足,不同的学者从不同的角度提出了一系列SPRINT算法的变体并取得了较好的效果。刘友军等[4]对SPRINT算法进行了改进,采用纯区间的方法对数值型属性进行规约,用等宽直方图的方式对属性值域进行了划分,按照纯区间和非纯区间分别进行规约和精确计算的方式对属性进行处理,减小了计算量的同时保证了分裂的精度。WU等[21]采用了与文献[4]类似的方法,将改进的算法应用于毕业设计过程管理系统(Graduation Design Process Management System)取得了良好的效果。许向阳等[10]提出一种快速寻找最佳分割点的方法克服SPRINT算法计算量大的缺点,该方法采用区间评估、筛选和局部逐一搜索等策略,大幅度地缩小了SPRINT算法的搜索空间。彭程等[7]针对SPRINT算法中的寻找连续属性最佳分割点计算量大的问题,改进了寻找连续属性最佳分割点的方法。改进后的方法可减少候选分割点的数目,从而减少计算量和计算时间。于蕾等[11]还引入了一种动态的数据结构,将改进的SPRINT算法应用于分布式环境下,减少了属性列表占用的存储空间以及分割节点操作所需的时间。
3 SPRINT算法
3.1 SPRINT算法基本思想
SPRINT算法中首先采用递归的方法构造决策树,与其他决策算法类似,都是采用自顶向下的方式进行的,在决策树的生成过程中包含生成树的创建和剪枝两个阶段。生成树的创建算法如下:
SPRINT算法中的剪枝策略采用了最小描述长度(Minimum Description Length,简称 MDL)原则[15]。在生成决策树的过程中,样本集T以及分割样本集T1、T2分别代表树中的结点,其中,T1、T2是T的两个分枝结点。因此,这种方法形成的决策树是一棵二叉树。
3.2 算法实现
为了生成决策结果,在算法中必须对节点进行分裂,分裂的优良程度是采用分裂指数来度量的,常用的分裂指数主要有Gini指数(Gini index)、信息增益比例等。在SPRINT算法中采用了Gini指数作为度量指标。一个具有n条记录的数据集S可归纳到c个互不相关的类中,在对集合S进行决策分类的过程中,集合S的Gini值是:
如果用m表示S中属于类j的记录数,那么pj=m/n。
将集合S按照规则cond划分成S1和S2两个子集,那么规则cond的度量值可记为GiniD(S,cond),定义如式(2):
其中,n1、n2分别为 S1、S2的记录数。GiniD(S,cond)越小,表明分裂规则越好。
由于分裂只会发生在两个节点之间,并且数值型属性A的分裂形式为A≤v,因此,可以先对数值型属性进行排序得到v1,v2,…,vn,共有n-1种分裂的可能性。为了取得最佳分裂点,传统的做法是取中点(vi+vi+1)/2作为分裂点,最后在不同的分裂点中取Gini值最小的点作为最佳分裂点。
传统方法虽然能够找到最佳分裂点,但是在算法实现过程中使用的是遍历所有结点的方法,是一种蛮力算法,分裂过程中占用的临时空间达数据规模的3倍以上,并且时间复杂度相对较高,对于指数型尤其是超大规模的数值属性效率很低。
4 基于趋势选择的SPRINT算法
为了克服SPRINT算法进行精确查找过程中占用空间过大、时间复杂度过高的缺点,本文不加证明地引用文献[4]中提出的纯区间概念,采用等深度直方图[18,20]的方法对训练集连续的值域进行等值分割成q个区间,进行分段处理,在计算方法上各个区间可以进行并行计算,在一定程度上可降低计算的工作量。在对区间分割处理时,对纯区间进行规约,对非纯区间则用估计最佳分割点的方法进行,在可能出现最佳分割点的区间进行查找。
4.1 基本定义与性质
定义1:对于某个数值型属性,区间Ci为纯区间当且仅当区间[vb,vt]中的所有记录属于同一个类Ci。
定理1:设[a,b]上的连续函数f(x)在(a,b)内具有一阶和二阶导数,那么:1)若在(a,b)内f″(x)>0,则f(x)在[a,b]上是凹的;2)若在(a,b)内f″(x)<0,则f(x)在[a,b]上是凸的。
定理2:f(x)在纯区间上是凸函数。
证明:设S为待划分的数据集,[vl,vu]为一个区间,数据集S的大小、S中类的个数分别表示为n、c,根据式(2)可得GiniD在点vl的值可表示为式(3)。
其中,xi,yi分别表示类i中小于或等于vl、vu的记录数;nl==,分别表示小于等于vl、vu的记录数;ci表示类i中所有记录数。也就是有式(4)成立。
对于Ck的一个纯区间[vb,vt],在式(3)中,xi(i=1,2,…,c)中表示该纯区间第k个类的记录数为xk,只有xk变化,令xk=x,ck=C,则式(3)可以转化为一个关于x的函数。
对于式(3),令:若[vb,vt]是对于Ck的纯区间,在式(3)中该纯区间的第k个类的记录数为xk,令xk=x,ck=C,则式(3)为一个关于x的函数。令:nl==A+x=B+x2,(ci-cxi)2=D+(C-x)2。其中,A、B、C、D 均为≥0的常数,则式(3)关于x的函数可表示为式(5)。
式(5)的二阶导数为:
因为A、B、C、D 均为大于等于0的常数,x>0,n>nl=A+x,(A+x)3和(n-A-x)3是大于0的数,所以有f″(x)<0。根据定理1可知,f(x)在纯区间[vb,vt]上是凸函数。
定理3:如果在连续属性的属性表中确定分割点v的两个元组的类别相同,那么至少存在另一个分割点v′使得v′的Gini参数值小于分割点v的Gini参数值[7]。
根据定理2知式(3)在Ck的一个纯区间[vb,vt]内的极小值只可能出现在区间的边界点处。数值型属性一般都服从高斯分布[16],在等宽划分的区间中存在大量的纯区间。因此,可以直接将纯区间进行剪枝,只要计算各个纯区间的边界点处的Gini值;对于非纯区间首先判断分割点v的两个元组的类别是否相同,只有当两个元组类别不同时才计算其Gini值。
4.2 趋势选择法
由于连续属性的GiniD是连续的,对于非纯区间首先采用趋势选择法(Trend Selection Method)估计GiniD的下限值,假设j在v1取得最小斜率,用yj代替xj,使用公式(3)来计算新的GiniD,如果GiniD(S,a≤vl)>GiniD(S,a≤vu),那么 GiniD在区间[vl,vu]上是凸的,区间[vl,vu]被剪枝。候选分割点的 GiniD值为 min{GiniD(S,a≤vl),GiniD(S,a≤vu)}。基于趋势选择的候选分割算法(Trend Selection Based Candidate Segmentation Algorithm,简称TESTCASE算法)如下:
最后在候选区间中搜索最佳分割点,图2给出了一个示例区域中区间分布及Ginilow>Ginican_low的情况,其中,阴影覆盖的柱状区间就是候选区间。
图2 候选区间及Gini下限估计值示意图Figure 2.Candidate Interval and Estimate Gini Lower
4.3 基于趋势选择的SPRINT算法
在基于趋势选择方法的基础上,本文提出一种基于趋势选择的SPRINT算法。本文提出的算法采用了纯区间归约的方法和基于趋势选择的方法来处理数值型属性,首先采用宽度优先的方法构建生成树,针对连续属性的区间进行了剪枝,从而减少计算量,快速确定最佳分割点,还使用Gini指标对数值型属性进行评估,保证了算法的精确性。TESTSPRINT算法的详细描述:
算法中,集合T、T1、T2分别代表树中的结点。由于每个属性对应的最佳分割点只有一个,因此,最后生成的决策树是一棵二叉树。
4.4 算法分析
由于TESTSPRINT算法中进行了大量的区间剪枝和候选分割点的剪枝,即TESTSPRINT算法的主要优点在于属性分割和决策树的构建可以并行进行,下面从时间复杂度和空间复杂度两个方面进行分析。
设数据集S中共有n条记录包括c个互不相关的类,在生成决策树的过程中共划分为q个区间,每个区间的记录数为ni;在改进的算法中非纯区间数为b。在相同条件下对SPRINT算法和本文提出的TESTSPRINT算法在时间复杂度和空间复杂度两方面进行对比。
首先,在预处理阶段中,SPRINT算法构建属性表的时间复杂度为O(n),对属性预排序的时间复杂度为O(nlogn),因此,SPRINT 算法的时间复杂度为 O(n)+O(nlogn)=O(nlogn)。而在本文提出的TESTSPRINT算法中,估算每一个区间边界的Gini值的时间代价为O(qc),构建属性表和建立分区直方图列表的时间复杂度均为O(n),对每个非纯区间中的精确Gini值的时间代价最坏情况为O),因此,TESTSPRINT算法的时间复杂度为O(qc)+2 O(n)+O()=O(n)。
TESTSPRINT算法只对非纯区间进行局部排序,有效提高了排序的效率,同时,纯区间规约、非纯区间和候选结点的剪枝都减空间少了Gini值的计算量。无论从时间复杂度的角度,还是空间复杂度的角度看,本文提出的TESTSPRINT算法在性能上都有一定的提升。
5 实验验证
通过实验比较来研究本文提出的基于趋势选择的SPRINT算法的性能和有效性。实验中所采用的数据包括新疆师范大学225名受试者的体质测量数据和决策分析常用的STATLOG数据集。对新疆师范大学受试者进行体质测量项目主要包括身高、体重、握力、台阶指数和BMR值,其中,训练集包含150组数据,测试集包含75组数据。STATLOG中Segement数据集包含2310条记录;Shuttle包含58000条记录;Satimage数据集包含6435条记录。
本文所有实验均在相同的软、硬件条件下完成,实验的硬件环境为Intel(R)Core(TM)i5-25200四核64位2.5GHz的CPU和4GB的内存,软件环境为Windows 7-64 bit(professional)操作系统,所有代码均用Java(64bit JDK)和Matlab 2012实现。
5.1 算法校验
为了验证算法的准确性和稳定性,本文首先使用数据挖掘中常用的STATLOG数据集对算法的准确性进行了验证,STATLOG 数据集包含Segement、Shuttle和Satimage-Sanger数据包,其中,Segement共包含2310条记录,Shuttle中包含58000条记录,训练集43500条记录、测试集14500条记录;Satimage Sanger共包含6435条记录,训练集和测试集分别包含4435条记录和2000条记录。计算结果如表1所示。
由表1可知,TESTSPRINT算法分割结果与原SPRINT算法基本相同,TESTSPRINT算法的精确度已经能够达到99%以上,其精确度是可接受的。
表1 本研究精确Gini值和不同区间数下TESTSPRINT算法得到的Gini值一览表Table 1 Exact Gini Value and Compute Value under Different Intervals of TESTSPRINT
5.2 数据采集
测试中采用HHTC/WL-100型握力测试仪测量受试者握力,测力范围:5~99.9kgf,测量分辨率0.1kgf,测量误差:±0.3kgf。受试者两脚自然分开,成直立姿势,两臂自然下垂,掌心向内,手臂不得左右摆动,握力计与身体的任何部位都不得有接触,快速全力发力。对每位受试者进行2次测试,取2次测试结果的最大值作为记录值。
采集台阶指数使用HHTC/TJ-100型台阶试验仪,测量范围:0~300次/min,测量分辨率:1次,测量误差:±1次。受试者在测试之前可做轻微的准备活动,主要是活动下肢。受试者按照2s上下一次台阶的音乐节奏上下踏台,音乐节奏为120次/min,每次4拍,上下踏台的持续时间为3min。台阶高度女生为35cm,男生为40cm。上下台阶的运动停止后,受试者在30s内在相应位置静坐,将手指平放在桌子上,手指尽可能与心脏同高。测试者用指脉测试夹测试受试者脉搏,测试时间为3.5min,记录测试结果。
对于BMR值的测试是在基础状态下使用InBody 3.0人体成分分析仪进行的。InBody 3.0每次测试时间不超过2min,测试体重范围:10~250kg,测试年龄范围:6~99岁。Inbody 3.0人体成分分析仪检测项目主要包括:基础代谢率(BMR);身体质量参数(BMI)、体重(kg)等。综合几项测试结果可以得出受试者的体质质量(表2)。
表2 本研究数据格式示例一览表Table 2 Example Data Format
5.3 实验分析
在常规体质判断中我们希望根据一些简单测试的数据即可判断受试者的体质质量,由于BMR在临床上可以快速确定人体体质状况,但是其测试方法复杂,测试成本相对较高,不便于快速测试。因此,本实验根据本文提出的TESTSPRINT算法对身高、体重、握力和台阶指数等基本数据快速进行决策分析,即可得出体质质量标准。在此基础上利用测试集中BMR值,即可判断决策分析的准确度。
由于体质质量有优秀、良好、健康、亚健康、不健康5种描述方法,分别用数字0、1、2、3、4代表体质质量的5种等级,因此,在实验中将数据集划分成5个区间来进行计算。通过示例数据根据原始SPRINT构建的决策树如图3所示。
图3 本研究原始SPRINT构建的示例数据决策树示意图Figure 3.Decision Tree Build by the Original SPRINT Algorithm
首先分别对训练集和测试集的数据进行模拟分析(图4、图5)。
图4 本研究训练集数据示意图Figure 4.Training Set Data Diagram
然后使用训练集数据对决策树进行建模,在此基础上对测试集数据进行评估,发现共有3组类别,出现异常数据1个,算法准确率为99.56%,原始SPRINT算法准确率为98.2%。其中,原始SPRINT算法与本文提出的TESTSPRINT算法残差与残差区间杠杆图分别如图6、图7所示。
对比图6与图7可知,原始SPRINT算法得出的结论中存在部分噪音数据,影响了决策分析结果的准确性,而本文提出的TESTSPRINT算法决策分析的结果较原始SPRINT算法在一定程度上有所提高。本文提出的TESTSPRINT算法在人体体质数据分析中具有较高的准确率,预测能力在可接受的范围内。
图5 本研究测试集数据示意图Figure 5.Test Set Data Diagram
图6 本研究原始SPRINT算法残差与残差区间图Figure 6.Residuals and Residual Interval Graph of Original SPRINT Algorithm
图7 本研究TESTSPRINT算法残差与残差区间图Figure 7.Residuals and Residual Interval Graph of TESTSPRINT Algorithm
6 结语和未来工作展望
6.1 结语
本文引用了纯区间的概念,提出了趋势选择方法,在此基础上提出TESTSPRINT算法。利用Gini指数函数在纯区间上是凸函数并且数值型属性一般服从高斯分布的特点以及Gini指数函数一阶偏导预测函数走向的特性,对SPRINT算法在处理数值型属性部分进行了优化。理论分析和实验结果表明,TESTSPRINT算法在一定程度上可以提高算法的效率。在体质分析中可以应用该算法进行快速决策,判断人体体质状况。例如,可以根据身高、体重、握力等简单测试数据快速建立人体体质状况决策树,为有效快速的确定人体体质健康状况提供决策依据,具有较高的准确性,并且时间和空间开销较原SPRINT算法小。当然,划分的区间数对改进的算法的计算时间代价有一定的影响,如何有效的选取区间数,以便更好地减少非纯区间的数量、降低对非纯区间的排序代价及如何在更大程度上对非纯区间候选分割点进行剪枝,有待进一步的优化。
我国体质监测工作进行多年来,建立了大量体质信息数据库。一方面,长期积累的大量数据的分析工作一直都是对体育工作研究者的重大考验,一种简便有效的分析方法无疑可以减轻体质数据分析的负担,并且,TESTSPRINT算法可以实现对体质健康状况快速的给出反馈结论,便于受试者大致了解自身健康状况,以及体育相关工作者及时给出专业的指导建议。另一方面,现行体质测试采集指标繁多,测试和统计工作都要耗费大量人力、财力来支撑,本文提出的TESTSPRINT算法可以运用简单的体质数据来评价体质健康状况,在未来的体质监测程序中也许可以尝试简化体质测试指标,提高精确性,结合先进的计算机技术来达到监测国民体质的目的。
6.2 未来工作展望
随着国民体质素质越来越受到政府和公民的重视,体育监测数据系统已经趋向于不同地区实现数据共享,我国已经开始构建国家体育地理信息系统[9]和羽毛球运动员战术意识测评及其多媒体训练系统[2]等单项测评系统。展望未来,我国国民体质监测数据呈现出不同地理位置上的数据共享,数据库系统的数据量的增加将导致未来国民体质数据分析必须采用分布式海量数据计算方法。因此,在对国民体质数据分析时,不仅要着眼于本地数据处理方法的优化,更要注重分布式海量数据处理方法的研究。另一方面,当前体育数据分析主要还是使用简单的统计分析的方法,需要深层次挖掘体育数据的内涵,得出更多更精确的结论还需要更多地致力于数据挖掘算法及其在体育数据分析中的应用场景研究。
[1]陈小平.力量训练的发展动向与趋势[J].体育科学,2004,24(9):36-40.
[2]程勇民,金花,周卫星,等.羽毛球运动员战术意识测评及其多媒体训练系统的研制[J].广州体育学院学报,2009,29(2):57-61.
[3]李慧玲,林子.数据仓库和数据挖掘在高校体育数据分析中的应用[J].广州体育学院学报,2005,25(5):126-128.
[4]刘友军,汪林林.SPRINT 算法的改进[J].计算机工程,2006,32(16):55-57.
[5]茅洁,蒋雄文,梅焰.神经网络在运动生化指标中的应用[J].武汉体育学院学报,2004,38(4):53-55.
[6]茅洁,梅焰.灰色ART聚类分析法在竞技体育生化指标监控中的应用[J].武汉体育学院学报,2005,39(10):50-52.
[7]彭程,罗可.SPRINT算法中寻找连续属性分割点方法的改进[J].计算机工程与应用,2006,42(27):159-161.
[8]桑国强.体育院校辅导员管理行为效益模糊分析[J].武汉体育学院学报,2013,47(2):81-86.
[9]史兵,王宇红.关于构建国家体育地理信息系统的初步研究[J].西安体育学院学报,2007,24(2):1-8.
[10]许向阳,龚永华.SPRINT算法的改进[J].计算机工程与应用,2003,39(33):187-189.
[11]于蕾,刘大有,高滢,等.改进SPRINT算法及其在分布式环境下的研究[J].吉林大学学报(理学版),2008,46(6):1119-1124.
[12]于岱峰,钟亚平,于亚光.基于数据挖掘技术在人体肌肉力量数据分析中的应用——以人体握力肌肉力量测试数据研究为例[J].体育科学,2010,30(2):70-74.
[13]赵会群,孙晶,花勇民,等.数据挖掘技术在体育比赛技战术分析中的应用研究[J].北京体育大学学报,2008,31(5):712-715.
[14]郑丹青.基于SPRINT算法的胃癌临床医疗数据挖掘研究[J].吉林师范大学学报(自然科学版),2012,33(2):121-124.
[15]GERARDO RICHARTE.Four different tricks to bypass Stack Shield and Stack Guard protection[EB/OL].http://www2.corest.com/files/files/11/StackguardPaper.pdf,April-June 2002.
[16]HAN J,KAMBER M.Data Mining:Concepts and Techniques[M].Beijing:High Edu Press,2001:279-301.
[17]J R QUINLAN.C4.5:Programs for Machine Leaning[M].Los Altos:Morgan Kaufmann Publishers,Inc 1993.
[18]MEHTA M,AGRAWAL R,RISSANEN J.SLIQ:A fast scalable classifier for data mining[A].In:Proceedings of 1996International Conference on Extending Databases Technology[C].Avignon:1996:18-32.
[19]SHAFER J,AGRAWAL R,MEHTA M.SPRINT:A scalable parallel classifier for data mining[A].In:Proceedings of the 1996Int Conference Very Large Data Bases[C].Bombay,1996:544-555.
[20]U FAYYAD,K IRANI.Multi-interval discretization of continuous-values attributes for classification learning[A].In:Proc 13th Intl Joint Conf Artificial Intelligence[C].Chambery:1993.
[21]YAN-WEN WU,LI LI,SHENG-YI ZHAO,et al.Application of improved SPRINT algorithm in the graduation design process management system[A].Zhang Jiajie,Workshop on Intelligent Information Technology Application[M].China,IEEE Computer Soc,2007:252-255.