教育频道,考生的精神家园。祝大家考试成功 梦想成真!
会员登录 会员注册 网站通告:

经济学

搜索: 您现在的位置: 经济管理网-新都网 >> 经济学 >> 数量与技术经济学 >> 正文

Boosting算法及其在中医亚健康数据分类中的应用

http://www.newdu.com 2018/3/7 本站原创 佚名 参加讨论

 

     李霞/何丽云/刘超

【内容提要】

目的应用boosting算法建模,对亚健康状态的人群进行分类并分析其临床特征,同时与通常使用的logistic统计方法进行比较研究。方法使用不同损失函数下boosting算法对亚健康状态流行病学调查数据的健康和亚健康人群进行分类;同时,通过重要性度量分析得到亚健康状态的重要临床特征。结果采用boosting算法对亚健康人群进行的分类得到了分类准确性及重要影响变量。结论使用boosting算法对亚健康人群进行分类的方法比传统的两种logistic回归模型分类准确率要高,同时也可以得到影响亚健康状态的重要变量。

【关键 词】logistic回归/boosting/损失函数/重要性度量


        统计学习是当前活跃在各个科研和应用领域中的一门学科,可以看作是新一代统计学的重要分支,它同时将模型的可解释性和预测准确性考虑到对数据的建模当中,而其中的boosting方法由于其优良的预测准确性在近几年中最为引人注目,因此,本文考虑将其纳入本研究当中,并同传统的logistic回归判别模型进行比较。
        亚健康状态是现代社会的新概念,其发生受社会竞争加剧,工作压力加大,心理负担加重及不良情绪干扰等因素的影响而日益增多,不仅影响人们的生活质量,也与多种慢性非传染性疾病的发生发展密切相关。但由于亚健康状态概念宏观模糊,与正常和疾病状态难以明确界定,给临床研究带来困难。本研究应用boosting分类建模方法,对亚健康状态的流行病学调查数据进行分析,建立了亚健康状态判断模型并对其临床特征进行了研究,现报道如下。
        一、资料与方法
        (一)资料来源
        本组资料来源于2003年3月到10月对北京市不同行业的居民,发放亚健康状态中医基本证候流行病学调查[3]问卷4000份,回收问卷3676份,合格问卷3624份。
        (二)研究标准
        (1)被调查者纳入标准:①符合本课题的亚健康专家诊断标准[2];②年龄35~55岁;③愿接受调查者。
        (2)合格问卷的判断标准:①一般信息中除地址和联系方式外的项目必须填写;②再次排除有疾病诊断者;③全部问题条目的缺失和漏填不超过5%。
        (3)问卷排除标准:①不符合纳入标准者;②患有心脑血管、糖尿病、肿瘤等重大疾病者;③患非重大疾病但需用药维持者;④不愿合作者。
        (三)研究目的与方法
        (1)研究目的
        ①亚健康分类模型的建立,即从初步分类的数据集中抽象出一个分类模型,该模型能够很好地拟合当前分类结果并能解释其意义,对未知的人群分类具有指导作用,具有预测意义,这是通用的目的之一。
        ②对亚健康临床特征进行分析,即从亚健康的56个症状变量中筛选出重要的因素,为亚健康诊断研究打下基础,这使得模型必须对实践具有指导和解释意义。
        (2)研究的方法——基于boosting算法的模型
        boosting算法是一种用来提高学习算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将它们组合成一个预测函数,达到把一弱学习算法提升为强学习算法的目的。1989年Schapire提出了第一个可证明的多项式时间boosting算法,对这个问题作出了肯定的回答。一年后,Freund设计了一个高效得多的通过重取样或过滤运作的boosting-by-majorty算法。这个算法尽管在某种意义上是优化的,但却有一些实践上的缺陷。1995年Freund和Schapire介绍了通过调整权重而运作的Ada-Boost算法AdaBoost,AdaBoost1M1,AdaBoost1M2,AdaBoost1R,解决了早期boosting算法很多实践上的困难。
        boosting算法是一种基于其他机器学习算法之上的用来提高算法精度和性能的方法。当用于回归或分类分析时,不需要构造一个拟合精度高、预测能力好的算法,只要一个效果只比随机猜测略好的粗糙算法即可,称之为基算法。通过不断地调用这个基算法就可以获得一个拟合和预测误差都相当好的组合预测模型。boosting算法可以应用于任何的基础算法,无论是线性回归、决策树、神经网络、还是SVM方法,都可以有效地提高精度。因此,boosting可以被视为一种通用的增强基础算法性能的回归分类分析算法。
        本文的模型训练过程:首先将全部样本2613例按7:3的比例随机分为训练集(1830例)和测试集(783例),在训练集上训练模型,在测试集上对模型准确性进行测试。
        (3)研究辅助工具
        所有建模过程均通过在R中编程实现。
        二、过程及结果
        
        (2)将上一步求得的导数看作是伪因变量,用基函数去拟合这个因变量,得到基函数的参数 ,并同时得到相应的系数β:
         
        在该算法中,最终得到的 实际上是多个基函数的线性组合,在此过程中除了需要考虑损失函数L(y,F)以外,通常还要选定基函数{h(x)}空间,由于决策树具有多种优点,因此在本文中我们考虑使用决策树作为基函数。同时,选择决策树作为基函数还可以得到预测变量的重要性度量。我们可以先从单个决策树入手,假设树的叶节点有J个,Breiman等人(1984)提出了对于单个决策树的变量重要性度量,当目标变量为区间型时,重要性度量为由节点到分裂后的节点间误差平方和的减少,即:
         
        总之,在确定了损失函数、基函数、优化搜索策略后,就可以使用boosting算法对一个分类问题进行建模。在以下的讨论中损失函数我们主要集中在以上提到的两个损失函数,基函数采用决策树(深度为3)、最优迭代停止次数通过5折交叉验证来设定。
        1.bernoulli分布的损失函数
        当响应变量的取值为二分类变量时,首先我们考虑使用bernoulli对数似然函数作为损失函数,即:

L(y,F)=log(1+exp(-yF))


        在建模过程中我们使用5折交叉验证对最优迭代次数进行选择,结果表明当迭代次数=3857时,5折交叉验证的损失函数达到最小。迭代过程如图2右侧图中所示,竖线的横坐标即为最优交叉验证所在的迭代次数,同时得到变量的相对重要性度量图,如图2左图中所示。
         
        图2迭代过程及变量相对重要性
        变量相对重要性的具体数值见表1(仅列出前10位的变量):
        表1变量重要性列表

变量 相对重要性B02疲乏不易缓解 11.24615831C35睡眠差而感觉疲劳7.30508878B04头脑昏沉6.72979097B24气短5.29293047C48大便酸腐气4.85004553B25胸闷4.44894938C44排便困难4.10301871E67工作效率下降3.17515420B01感觉疲劳3.08082261D62手脚打颤或身上忽冷忽热3.04978211


        同时当我们将从训练样本得到的模型应用到测试数据集上时,有关模型判别的判断矩阵如表2所示。
        表2使用基于贝努利分布损失函数的boosting模型判断

原结论 模型判断 亚健康正常 总数亚健康515 38 553正常 16214 230总数531252 783


        分类总正确率为;(515+214)/783=93.10%;误分率为:(38+16)/783=6.90%。
         
        图3迭代过程及变量相对重要性
        2.指数分布的损失函数

loss function=exp(-ygF)


        同样在建模中我们使用5折交叉验证对最优迭代次数进行选择,当迭代次数=2390时,5折交叉验证的损失函数达到最小。迭代过程如图3右侧所示,竖线所在的横坐标即为最优交叉验证所在的迭代次数为2390,同时得到变量的相对重要性度量图,见图3。表3变量重要性列表(仅列出位居前10位的变量)

变量 相对重要性B02疲乏不易缓解10.65816952B04头脑昏沉7.43205088C35睡眠差而感觉疲劳6.35083576B24气短4.83533831C48大便酸腐气4.79418747C44排便困难4.45340256B25胸闷4.35412420B01感觉疲劳3.63297387D62手脚打颤或身上忽冷忽热3.40385326E67工作效率下降3.22464787


        应用到测试数据集上时,有关模型判别的判断结果矩阵见表4。
        表4使用基于指数损失函数的boosting模型判断

原结论 模型判断 亚健康正常总数亚健康517 36 553正常 18212 230总数535248 783


        分类总正确率为;(517+212)/783=93.10%;误分率为:(36+18)/783=71/783=6.90%。
        我们发现本测试集在采用不同的损失函数时,总正确率和误分率是相等的,稍有不同之处在表2和表3的判断矩阵表格中对应于原先是亚健康状态而判断出亚健康状态的人群以及原先是正常状态的人群而判断出是正常状态的人群计数稍有差异。
        比较文献[1]中使用logistic回归得到的正确率而言,本文所讨论的模型判断准确率有近3个百分点的提高,而且误分类率也有较大改进。
        三、讨论
        1.亚健康的研究难点在于人群分类:亚健康是描述人体没有西医疾病诊断,但是却有多种“不适”临床表现和各种能力显著减退的总体状态,本研究的方法是首先排除疾病人群,再将剩余的健康和亚健康两部分人群通过模型进行分离和分析,本文的分类模型便是针对这两个人群的流行病学调查数据进行的。
        2.本模型的优点:对于健康和亚健康人群分类的模型,曾经有多种方法,有的已经发表[1],但统计学习方法是近几年中逐渐在统计学领域中兴起的一个分支,对以高预测性能和模型解释为目的的建模问题有着比传统统计分析方法更优良的特性。在本文中我们通过分别对两种不同的损失函数下使用boosting算法进行建模,在测试集上都可以得到比文献[1]中的方法更高的预测准确性,同时也得到了与亚健康状态相关的重要指标排序,从而得到亚健康状态主要的临床特征表现。
        3.亚健康人群分类模型建立意义:目前医学界和社会学界对亚健康研究的重视程度很高,但是具体的研究方法较少,本模型对于进一步研究亚健康临床特征,诊断亚健康,从而建立恰当的预防和治疗方法有很大应用价值。本文所构建的两个boosting模型从总体准确率来看没有差异,但是对于检测亚健康状态人群和检测正常状态人群方面稍有差异,比如基于指数损失函数的boosting模型在检测亚健康状态人群方面略优于基于贝努利分布损失函数的boosting模型,而在检测正常状态人群方面,基于指数损失函数的boosting模型在检测亚健康状态人群方面略逊于基于贝努利分布损失函数的boosting模型。因此在实际应用过程中可以结合这两种模型的特点。

【作者简介】李霞中国人民大学统计学院,100872
    
何丽云中国中医科学院中医临床基础医学研究所临床评价中心,100700
    
    刘超北京航空航天大学理学院数学系,100083

 


    

Tags:Boosting算法及其在中医亚健康数据分类中的应用  
责任编辑:admin
相关文章列表
没有相关文章
请文明参与讨论,禁止漫骂攻击。 昵称:注册  登录
[ 查看全部 ] 网友评论
  • 此栏目下没有推荐文章
  • 此栏目下没有热点文章
| 设为首页 | 加入收藏 | 网站地图 | 在线留言 | 联系我们 | 友情链接 | 版权隐私 | 返回顶部 |