multiboost怎样如何进行分类汇总多分类

结合Rotation Forest和MultiBoost的SVM集成方法--《计算机科学》2013年03期
结合Rotation Forest和MultiBoost的SVM集成方法
【摘要】:针对如何提高集成学习的性能,提出一种结合Rotation Forest和MultiBoost的集成学习方法——利用Ro-tation Forest中旋转变换的思想对原始数据集进行变换,旨在增加分类器间的差异度;利用MultiBoost在变换后的数据集上训练基分类器,旨在提高基分类器的准确度。最后用简单的多数投票法融合各基分类器的决策结果,将其作为集成分类器的输出。为了验证该方法的有效性,在公共数据集UCI上进行了实验,结果显示,该方法可获得较高的分类精度。
【作者单位】:
【关键词】:
【基金】:
【分类号】:TP181【正文快照】:
集成学习由于能够显著提高学习系统的泛化性能[1],因此受到了越来越多的关注,已成为模式识别和机器学习领域研究的热点问题。目前,集成学习已经被成功应用于基因数据分析[2,3]、遥感数据分析[4]、图像处理[5]等很多实际应用问题。常用的集成方法有Bagging[6]、AdaBoost[7]、Ra
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【共引文献】
中国期刊全文数据库
姜远;周志华;;[J];计算机研究与发展;2006年10期
中国博士学位论文全文数据库
向坚;[D];浙江大学;2007年
苏振强;[D];中国科学技术大学;2006年
章军;[D];中国科学技术大学;2007年
中国硕士学位论文全文数据库
赵万鹏;[D];中国科学院研究生院(成都计算机应用研究所);2006年
陈平;[D];西北大学;2008年
【二级参考文献】
中国期刊全文数据库
谷雨;徐宗本;孙剑;郑锦辉;;[J];计算机研究与发展;2006年04期
王晓丹,王积勤;[J];空军工程大学学报(自然科学版);2004年03期
许建华,张学工,李衍达;[J];控制与决策;2004年05期
【相似文献】
中国期刊全文数据库
张振宇;;[J];大连交通大学学报;2010年02期
胡莹岑;王友仁;崔江;罗慧;;[J];佳木斯大学学报(自然科学版);2011年02期
张妤;王文剑;康向平;;[J];计算机科学;2008年04期
袁兴梅;杨明;;[J];南京师大学报(自然科学版);2010年04期
李烨;蔡云泽;尹汝泼;许晓鸣;;[J];计算机研究与发展;2008年04期
何琨;王国胤;杨勇;;[J];重庆邮电大学学报(自然科学版);2007年04期
沈志熙;黄瀚敏;黄席樾;李敏;;[J];机器人;2009年04期
王敏;王文剑;;[J];计算机工程与应用;2009年27期
牛鹏;魏维;;[J];计算机应用;2010年06期
韩俊英;刘成忠;;[J];甘肃农业大学学报;2008年01期
中国重要会议论文全文数据库
李烨;蔡云泽;许晓鸣;;[A];第16届中国过程控制学术年会暨第4届全国故障诊断与安全性学术会议论文集[C];2005年
林杰华;张斌;李冬森;宋华茂;余志强;王浩;;[A];全国第21届计算机技术与应用学术会议(CACIS·2010)暨全国第2届安全关键技术与应用学术会议论文集[C];2010年
荣海娜;张葛祥;张翠芳;;[A];中国自动化学会、中国仪器仪表学会2004年西南三省一市自动化与仪器仪表学术年会论文集[C];2004年
尹钟;张建华;;[A];中国自动化学会控制理论专业委员会A卷[C];2011年
顾锦荣;刘华强;孙预前;;[A];第七届长三角气象科技论坛论文集[C];2010年
李巍华;刘雯;;[A];第十二届全国设备故障诊断学术会议论文集[C];2010年
刘碧森;钟守铭;陈华富;;[A];第二届全国信息获取与处理学术会议论文集[C];2004年
杜金香;冯西安;马艳;;[A];2011'中国西部声学学术交流会论文集[C];2011年
郭小荟;马小平;;[A];中国自动化学会控制理论专业委员会D卷[C];2011年
蒋少华;桂卫华;阳春华;唐朝晖;蒋朝辉;;[A];第二十七届中国控制会议论文集[C];2008年
中国博士学位论文全文数据库
程丽丽;[D];哈尔滨工程大学;2009年
常甜甜;[D];西安电子科技大学;2010年
王清;[D];复旦大学;2011年
刘育明;[D];浙江大学;2006年
常群;[D];哈尔滨工业大学;2007年
梁锦锦;[D];西安电子科技大学;2009年
杨金芳;[D];华北电力大学(河北);2007年
张永;[D];大连理工大学;2008年
薛云;[D];中南大学;2008年
邢永忠;[D];南京理工大学;2009年
中国硕士学位论文全文数据库
王敏;[D];山西大学;2010年
琚旭;[D];合肥工业大学;2006年
聂小芳;[D];辽宁工程技术大学;2009年
冯杰;[D];东北大学;2009年
王奇安;[D];南京航空航天大学;2009年
张成学;[D];山东科技大学;2011年
李新;[D];中国海洋大学;2010年
刘维会;[D];山东科技大学;2010年
杨振章;[D];杭州电子科技大学;2009年
李靖;[D];苏州大学;2011年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号基于PredictionIO的推荐引擎打造,及大规模多标签分类探索
发表于 17:11|
摘要:在日的北京Spark Meetup第六次活动上,尹绪森就如何使用PredictionIO打造一个定制化推荐引擎进行了详细介绍,白刚则分享了新浪在大规模多标签分类上的探索。
在日的上,一场基于Spark的机器学习专题分享由微软Julien Pierre、新浪网白刚与Intel研究院尹绪森联手打造。Julien Pierre:Apache Spark in ASG微软ASG产品经理 Julien PierreJulien Pierre首先进行了开场发言,并为大家分享Spark在ASG团队的应用情况。通过Julien了解到,其团队主要工作集中在Spark SQL和MLlib两个组件,基于Spark做一些交互式分析,其中包括:将Spark与现有的查询工具(Avacado整合)、使用Spark填补SQL Server DB和Cosmos之间规模的数据处理空白,以及使用Spark处理Bing和Office数据集。Julien表示,在小(1TB以内)数据集的处理上,SQL Server DB非常适合,它可以将延时控制在1分钟之内;而在大数据集(100TB以上)的处理上,Cosmos可以在小时级别搞定;而使用Spark,刚好填补了数据处理上1-100TB的空档,在1分钟以内对数据进行处理。尹绪森:Use PredictionIO to build your own recommendation engine & MLlib 最新成果Intel研究院工程师 尹绪森&尹绪森在本次Meetup上主要分享了两个话题——使用PredictionIO来打造一个推荐引擎以及MLlib的最新成果。PredictionIO尹绪森首先介绍了PredictionIO,他表示,推荐系统打造过程中,除下Spark,系统还需要其他组件,而PredictionIO就是基于Spark一个完整的端到端Pipeline,让用户可以非常简单的从零开始搭建一个推荐系统。整个Pipeline流程如图所示,其中Spark是整个管道的核心,整个Pipeline主要分为以下几步:(可选)PredictionIO使用Event Server来导入数据并存储到HBase中;随后这些数据进入一个基于Spark的PredictionIO Engine,PredictionIO Engine可能包括一个用于导入数据的Data Source,一个用于数据处理ETL等的Data Preparator;同时,一个推荐系统可能包括多个算法,因此数据需要放到不同的Algorithm中做training;在做完training之后生成模型,这里用户可以根据需求来编写持久化方法,确定数据储存的位置,是本地文件系统亦或是HDFS;有了这些model之后,下一步需要做的是serving以响应用户的请求,接受用户的一些查询从而生成结果。如上所述,一个完整的Pipeline中同时存在多个组件,比如:HBase,为EventServer存储event;Spark,用于数据或者模型的处理;HDFS,用于存储模型;Elasticsearch,用于元数据的处理。而对于用户来说,使用PredictionIO来构建Pipeline只需要实现4个部分:Data Source and Data PreparatorAlgorithmServingEvaluation MetricsEngine在PredictionIO中,Engine是一个比较核心的部分。在这里,尹绪森通过两个用例来讲述:Engine A:Train predictive model数据从Event Server读取=》通过Data Source后形成TrainingData=》通过Preparator处理后形成PreparedData=》发送到不同的Training模块(Algorithm & model)进行训练。Engine B:Respond to dynamic queryMobile App向Engine提交查询(输入)请求,随后会发送到3个Training模块(Algorithm & model),生成结果并通过用户自定义的算法将3个结果进行整合,从而产生一个Predicted Results,并交由Serving呈现在Mobile App。最后,尹绪森通过实际代码讲解了如何使用PredictionIO打造一个基于Spark的Pipeline。Recent news of MLlib尹绪森表示,在之前版本,Spark的各个组件(比如MLlib、Graphx、Core)相对独立,而在1.3发布后,当下已经有了一个融合的趋势,更加方便用户使用。最明显的变化就是MLlib和Spark SQL,其中SparkSQL把SchemaRDD封装成新的DataFrame API,同时基于MLlib和SQL发展出一个MLPackage,它与DataFrame一起提供了更方便的API为用户使用;而MLlib则与Spark Streaming一起提供了online training的能力,但是目前online training只有3个算法;最后,在1.3发布后,MLlib中添加了很多新的算法,其中多个都是基于GraphX实现,这主要因为很多算法都适合用图来表示,比如LDA(Latent Dirichlet Allocation)。分享最后,尹绪森综述了MLlib近期的几个主要更新,其中包括Streaming-wised training、Feature extraction/transformation、LDA on top of GraphX、Multi-logistic regression、Block matrix abstraction、Gaussian Mixture、Isotonic Regression、Power iteration clustering、FPGrowth、Stat、Random forest以及ML package和 DataFrame,并表示ML package和DataFrame是近期最重要的两个变化。白刚:Multi-Label Classification with Bossting on Apache Spark新浪网广告算法部门高级工程师 白刚白刚在新浪/微博从事广告算法相关工作。而本期Meetup上,白刚的分享主要围绕着新浪门户的大规模多标签分类算法工作(项目已上传到)。背景在类似新浪的媒体中,广告带来收益,同时也会影响到用户体验。为了减少对用户体验的影响(甚至是对用户体验产生帮助),如何区分“用户属于哪个人群,是哪些广告的潜在受众”至关重要,也就是如何做好user profiling。如上图所示,每个用户都有着不同的兴趣,同时每个人也拥有着多个兴趣,因此实际问题归结于如何给用户打上对应的标签。问题与求解在机器学习领域,上述的问题被抽象为模型的建立和预测:根据给出的user feature x,输出符合其兴趣的标签集合L,即F :X →L。这里需要做的则是通过一个superwise的方法对模型进行训练。所使用数据集:Feature是用户的抽象行为;X,一个N维的向量;L则是具体的Label集合,同样是一个向量,每个维度的值是正一和负一,表示加或者不加某一个Label。训练的最终目标是最小化Hamming Loss——即每个Label的错误率。在这里,白刚从简单的方案介绍,然后针对其缺点,给出了scalable的方案:1. Per-label bin-classification&为了得到这个vector-valued function F :X →L,这里需要为每个l∈L都训练一个binary classifier,预测时将判断每一个标签上的结果。lOne- versus-all implemented in LibSVM、scikit-learnlAd targeting往往使用per-campaign model,为每一个ad compaign训练一个二分类模型这个途径主要基于一些已有技术,比如LR、SVM等二分类模型,因此易于验证。但是这个模型有个比较明显的缺点,即扩展性差——逐个标签训练模型是个比较低效的途径,随着标签数的增加,训练耗时也明显增加。2. Multi-Label Classification基于上述思考,新的目标被确定:首先,模型本身的输出就是多标签结果,而不是组合多个二分类的模型去获得最终结果;其次,训练过程是最小化Hamming loss,这样一个目标可以让多标签的分类更准;最后,必须是可扩展的,不管是在Feature的维度上,还是在Label的维度上,亦或是数据集的大小上,都能适应一个很大的规模。在考量了多个解决问题的方案后,Boosting最终被选择,这主要因为Boosting在这个场景下可以更加的高效和方便,同时在Spark上实现Boosting这个多迭代的方式也非常适合。这个方案主要涉及到两篇文献和一个开源的实现:文献1:( Robert E. Schapire & Yoram Singer)。提出了AdaBoost.MH算法,它主要是对AdaBoost的扩展。文献2:The Return of AdaBoost.MH: Multi-class Hamming Trees,2014年由Kegl提出。该方法主要是对AdaBoost.MH里的base learners做Factorization,将Decision stump和Hamming tree作为base learner。需要注意的是,该方法还处于初级阶段。开源实现:前述算法的一个CPP单机开源实现。http://multiboost.org。当然,在这里希望得到的是通过Spark实现一个更具扩展性,更容易并行的方案。分享期间,白刚详细的介绍了上述3点工作原理及学习机制,并针对Spark上的实现进行了详细讲解,其中包括:多标签情况下弱分类器的系数的计算及其数学意义。Base learner的训练、根据14年那篇文献的介绍,把弱分类器分解成一个只与feature相关、与label无关的函数和一个只需label相关、与feature无关的向量。前者把feature space做划分,后者在每个label上对前者的划分做修正。Multiboost on Spark1. Strong Learner on Apache SparkAdaBoost.MH on Apache Spark与Spark的结合,Strong Learner主要在Spark的driver program中实现算法逻辑,Base Learner类型作为类型参数。其中不同Base Learner可替换,实现可插拔,并实现了Base Learner的training逻辑与strong learner解耦。代码参见。2. Base Learner on Apache Spark这个部分的工作主要是对弱分类器逻辑实现的封装,其最核心内容就是实现baseLearnerAlgo.run(iterData.dataSet)。通过参考2014年的文献,主要分享了这三个方面的多标签弱分类算法:Decision stump:一个只有一个节点的决策树,只有两个模型参数。J,feature的index,即选择哪一个维度的feature去考虑;b,是一个threshold,当在这个维度上feature的值大于threshold的时候则划分为正的部分,反之则划分到负的部分。同时期训练过程就是寻找最优的分隔(j, threshold)的过程Hamming tree:Decision stump作为节点的决策树。Generalized bin-classifier方案:φ(x)使用任意二分类模型,与v一起来最大化class-wise edge/最小化exp loss。3. Decision Stump on Apache Spark对比单机版,在Spark中的实现并不会真正的去做排序,而是通过flatMap==》reduceByKey的方式实现。Decision Stump的实现在具体的实现过程中,白刚展示了Decision Stump的模型效果和训练过程Spark集群负载等数据,分析其中存在的一些问题:首先,它是一个非常弱的二分类模型;其次,Decision stump模型训练的数据传输量很大;最后,Tree-based模型,并不适合高维稀疏数据。因此,需要一个更强的,更易于训练,并且适应高维稀疏数据的φ(.)来针对feature space做二元划分。4. Generalized binary φ on Apache Spark白刚表示,通过对Spark的考量发现,Spark.mllib.classification中已有的模型和算法就符合我们的要求:首先,SVM和LR是比较强的二分类模型;其次,训练过程采用GradientDescent或者LBFGS的数值优化方法,易于训练、效率较高;最后使用SparseVector,支持高维稀疏数据。关于使用些模型的正确性的依据,在AdaBoost机制中,只要base learner比random guess(正确率0.5)好,整体就是收敛的,由于弱分类器中的vote vector的存在,可以保证每个label上的错误率都小于0.5。后续工作分享最后,白刚对现有的不足之处和可以优化的方向进行了总结,并邀请大家参与这个已经投放在GitHub上的项目,fork及pull request。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于PSO拓展的多分类器加权集成方法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口基于PredictionIO的推荐引擎打造,及大规模多标签分类探索 - 推酷
基于PredictionIO的推荐引擎打造,及大规模多标签分类探索
上,一场基于Spark的机器学习专题分享由微软Julien Pierre、新浪网白刚与Intel研究院尹绪森联手打造。
Julien Pierre:Apache Spark in ASG
微软ASG产品经理 Julien Pierre
Julien Pierre首先进行了开场发言,并为大家分享Spark在ASG团队的应用情况。
通过Julien了解到,其团队主要工作集中在Spark SQL和MLlib两个组件,基于Spark做一些交互式分析,其中包括:将Spark与现有的查询工具(Avacado整合)、使用Spark填补SQL Server DB和Cosmos之间规模的数据处理空白,以及使用Spark处理Bing和Office数据集。Julien表示,在小(1TB以内)数据集的处理上,SQL Server DB非常适合,它可以将延时控制在1分钟之内;而在大数据集(100TB以上)的处理上,Cosmos可以在小时级别搞定;而使用Spark,刚好填补了数据处理上1-100TB的空档,在1分钟以内对数据进行处理。
尹绪森:Use PredictionIO to build your own recommendation engine & MLlib 最新成果
Intel研究院工程师 尹绪森&
尹绪森在本次Meetup上主要分享了两个话题——使用PredictionIO来打造一个推荐引擎以及MLlib的最新成果。
PredictionIO
尹绪森首先介绍了PredictionIO,他表示,推荐系统打造过程中,除下Spark,系统还需要其他组件,而PredictionIO就是基于Spark一个完整的端到端Pipeline,让用户可以非常简单的从零开始搭建一个推荐系统。
整个Pipeline流程如图所示,其中Spark是整个管道的核心,整个Pipeline主要分为以下几步:
(可选)PredictionIO使用Event Server来导入数据并存储到HBase中;
随后这些数据进入一个基于Spark的PredictionIO Engine,PredictionIO Engine可能包括一个用于导入数据的Data Source,一个用于数据处理ETL等的Data Preparator;同时,一个推荐系统可能包括多个算法,因此数据需要放到不同的Algorithm中做training;
在做完training之后生成模型,这里用户可以根据需求来编写持久化方法,确定数据储存的位置,是本地文件系统亦或是HDFS;
有了这些model之后,下一步需要做的是serving以响应用户的请求,接受用户的一些查询从而生成结果。
如上所述,一个完整的Pipeline中同时存在多个组件,比如:HBase,为EventServer存储event;Spark,用于数据或者模型的处理;HDFS,用于存储模型;Elasticsearch,用于元数据的处理。而对于用户来说,使用PredictionIO来构建Pipeline只需要实现4个部分:
Data Source and Data Preparator
Evaluation Metrics
在PredictionIO中,Engine是一个比较核心的部分。在这里,尹绪森通过两个用例来讲述:
Engine A: Train predictive model
数据从Event Server读取=》通过Data Source后形成TrainingData=》通过Preparator处理后形成PreparedData=》发送到不同的Training模块(Algorithm & model)进行训练。
Engine B: Respond to dynamic query
Mobile App向Engine提交查询(输入)请求,随后会发送到3个Training模块(Algorithm & model),生成结果并通过用户自定义的算法将3个结果进行整合,从而产生一个Predicted Results,并交由Serving呈现在Mobile App。
最后,尹绪森通过实际代码讲解了如何使用PredictionIO打造一个基于Spark的Pipeline。
Recent news of MLlib
尹绪森表示,在之前版本,Spark的各个组件(比如MLlib、Graphx、Core)相对独立,而在1.3发布后,当下已经有了一个融合的趋势,更加方便用户使用。最明显的变化就是MLlib和Spark SQL,其中SparkSQL把SchemaRDD封装成新的DataFrame API,同时基于MLlib和SQL发展出一个MLPackage,它与DataFrame一起提供了更方便的API为用户使用;而MLlib则与Spark Streaming一起提供了online training的能力,但是目前online training只有3个算法;最后,在1.3发布后,MLlib中添加了很多新的算法,其中多个都是基于GraphX实现,这主要因为很多算法都适合用图来表示,比如LDA(Latent Dirichlet Allocation)。
分享最后,尹绪森综述了MLlib近期的几个主要更新,其中包括Streaming-wised training、Feature extraction/transformation、LDA on top of GraphX、Multi-logistic regression、Block matrix abstraction、Gaussian Mixture、Isotonic Regression、Power iteration clustering、FPGrowth、Stat、Random forest以及ML package和 DataFrame,并表示ML package和DataFrame是近期最重要的两个变化。
白刚:Multi-Label Classification with Bossting on Apache Spark
新浪网广告算法部门高级工程师 白刚
白刚在新浪/微博从事广告算法相关工作。而本期Meetup上,白刚的分享主要围绕着新浪门户的大规模多标签分类算法工作(项目已上传到
在类似新浪的媒体中,广告带来收益,同时也会影响到用户体验。为了减少对用户体验的影响(甚至是对用户体验产生帮助),如何区分“用户属于哪个人群,是哪些广告的潜在受众”至关重要,也就是如何做好user profiling。
如上图所示,每个用户都有着不同的兴趣,同时每个人也拥有着多个兴趣,因此实际问题归结于如何给用户打上对应的标签。
问题与求解
在机器学习领域,上述的问题被抽象为模型的建立和预测:根据给出的user feature x,输出符合其兴趣的标签集合L,即F :X →L。这里需要做的则是通过一个superwise的方法对模型进行训练。
所使用数据集:Feature是用户的抽象行为;X,一个N维的向量;L则是具体的Label集合,同样是一个向量,每个维度的值是正一和负一,表示加或者不加某一个Label。训练的最终目标是最小化Hamming Loss——即每个Label的错误率。在这里,白刚从简单的方案介绍,然后针对其缺点,给出了scalable的方案:
1. Per-label bin-classification&
为了得到这个vector-valued function F :X →L,这里需要为每个l∈L都训练一个binary classifier,预测时将判断每一个标签上的结果。
lOne- versus-all implemented in LibSVM、scikit-learn
lAd targeting往往使用per-campaign model,为每一个ad compaign训练一个二分类模型
这个途径主要基于一些已有技术,比如LR、SVM等二分类模型,因此易于验证。但是这个模型有个比较明显的缺点,即扩展性差——逐个标签训练模型是个比较低效的途径,随着标签数的增加,训练耗时也明显增加。
2. Multi-Label Classification
基于上述思考,新的目标被确定:首先,模型本身的输出就是多标签结果,而不是组合多个二分类的模型去获得最终结果;其次,训练过程是最小化Hamming loss,这样一个目标可以让多标签的分类更准;最后,必须是可扩展的,不管是在Feature的维度上,还是在Label的维度上,亦或是数据集的大小上,都能适应一个很大的规模。
在考量了多个解决问题的方案后,Boosting最终被选择,这主要因为Boosting在这个场景下可以更加的高效和方便,同时在Spark上实现Boosting这个多迭代的方式也非常适合。这个方案主要涉及到两篇文献和一个开源的实现:
( Robert E. Schapire & Yoram Singer)。提出了AdaBoost.MH算法,它主要是对AdaBoost的扩展。
文献2: The Return of AdaBoost.MH: Multi-class Hamming Trees,2014年由Kegl提出。该方法主要是对AdaBoost.MH里的base learners做Factorization,将Decision stump和Hamming tree作为base learner。需要注意的是,该方法还处于初级阶段。
开源实现: 前述算法的一个CPP单机开源实现。http://multiboost.org。当然,在这里希望得到的是通过Spark实现一个更具扩展性,更容易并行的方案。
分享期间,白刚详细的介绍了上述3点工作原理及学习机制,并针对Spark上的实现进行了详细讲解,其中包括:
多标签情况下弱分类器的系数的计算及其数学意义。
Base learner的训练、根据14年那篇文献的介绍,把弱分类器分解成一个只与feature相关、与label无关的函数和一个只需label相关、与feature无关的向量。前者把feature space做划分,后者在每个label上对前者的划分做修正。
Multiboost on Spark
1. Strong Learner on Apache Spark
AdaBoost.MH on Apache Spark
与Spark的结合,Strong Learner主要在Spark的driver program中实现算法逻辑,Base Learner类型作为类型参数。其中不同Base Learner可替换,实现可插拔,并实现了Base Learner的training逻辑与strong learner解耦。代码参见
2. Base Learner on Apache Spark
这个部分的工作主要是对弱分类器逻辑实现的封装,其最核心内容就是实现baseLearnerAlgo.run(iterData.dataSet)。
通过参考2014年的文献,主要分享了这三个方面的多标签弱分类算法:
Decision stump:一个只有一个节点的决策树,只有两个模型参数。J,feature的index,即选择哪一个维度的feature去考虑;b,是一个threshold,当在这个维度上feature的值大于threshold的时候则划分为正的部分,反之则划分到负的部分。
同时期训练过程就是寻找最优的分隔(j, threshold)的过程
Hamming tree: Decision stump作为节点的决策树。
Generalized bin-classifier方案: φ(x)使用任意二分类模型,与v一起来最大化class-wise edge/最小化exp loss。
3. Decision Stump on Apache Spark
对比单机版,在Spark中的实现并不会真正的去做排序,而是通过flatMap==》reduceByKey的方式实现。
Decision Stump的实现
在具体的实现过程中,白刚展示了Decision Stump的模型效果和训练过程Spark集群负载等数据,分析其中存在的一些问题:首先,它是一个非常弱的二分类模型;其次,Decision stump模型训练的数据传输量很大;最后,Tree-based模型,并不适合高维稀疏数据。因此,需要一个更强的,更易于训练,并且适应高维稀疏数据的φ(.)来针对feature space做二元划分。
4. Generalized binary φ on Apache Spark
白刚表示,通过对Spark的考量发现,Spark.mllib.classification中已有的模型和算法就符合我们的要求:首先,SVM和LR是比较强的二分类模型;其次,训练过程采用GradientDescent或者LBFGS的数值优化方法,易于训练、效率较高;最后使用SparseVector,支持高维稀疏数据。关于使用些模型的正确性的依据,在AdaBoost机制中,只要base learner比random guess(正确率0.5)好,整体就是收敛的,由于弱分类器中的vote vector的存在,可以保证每个label上的错误率都小于0.5。
分享最后,白刚对现有的不足之处和可以优化的方向进行了总结,并邀请大家参与这个已经投放在GitHub上的项目,fork及pull request。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 如何进行分类汇总 的文章

 

随机推荐