游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

一文彻底搞懂自动机器学习AutoMLTPOT

  本文将系统全面的介绍自动机器学习的其中一个常用框架:TPOT,一起研习如何在Python中将TPOT用于AutoML和ScikitLearn机器学习算法。分类和回归小案例,以及一些用户手册的介绍。快来和小猴子一起研习吧!
  如果你在机器学习建模期间花费数小时甚至数天时间来,一直尝试挑选最佳管道和参数的过程,那么我建议你仔细阅读本文。
  自动机器学习(AutoML)是指需要极少人工参与的情况下自动发现性能良好的模型用于预测建模任务的技术。
  本文核心内容:TPOT是一个用于AutoML的开源库,具有scikitlearn数据准备和机器学习模型。如何使用TPOT自动发现分类任务的最佳模型。如何使用TPOT自动发现回归任务的最佳模型。TPOT简介
  TreebasedPipelineOptimizationTool〔1〕,基于树的管道优化工具,简称TPOT,是一个用于在Python中执行AutoML的开源库。
  TPOT使用基于树的结构来表示预测建模问题的模型管道,包括数据准备和建模算法以及模型超参数。它利用流行的ScikitLearn机器学习库进行数据转换和机器学习算法,并使用遗传编程随机全局搜索过程来有效地发现给定数据集的性能最佳的模型管道。
  anevolutionaryalgorithmcalledtheTreebasedPipelineOptimizationTool(TPOT)thatautomaticallydesignsandoptimizesmachinelearningpipelines。
  。。。一种称为基于树的管道优化工具(TPOT)的进化算法,可自动设计和优化机器学习管道。
  然后执行优化过程以找到对给定数据集执行最佳的树结构。具体来说,一种遗传编程算法,旨在对表示为树的程序执行随机全局优化。
  TPOTusesaversionofgeneticprogrammingtoautomaticallydesignandoptimizeaseriesofdatatransformationsandmachinelearningmodelsthatattempttomaximizetheclassificationaccuracyforagivensupervisedlearningdataset。
  TPOT使用遗传编程的一个版本来自动设计和优化一系列数据转换和机器学习模型,这些模型试图最大限度地提高给定监督学习数据集的分类精度。
  下图取自TPOT论文,展示了管道搜索所涉及的元素,包括数据清洗、特征选择、特征处理、特征构建、模型选择和超参数优化。
  TPOT将通过智能探索数千条可能的管道来为你的数据找到最佳管道,从而自动化机器学习中最繁琐的部分。
  机器学习管道示例
  接下来我们一起看看如何安装和使用TPOT来找到一个有效的模型管道。安装和使用TPOT第一步安装TPOT库pipinstalltpot
  安装后,导入库并打印版本号以确认它已成功安装:checktpotversionimporttpotprint(tpot:stpot。version)使用TPOT库很简单
  需要创建TPOTRegressor或TPOTClassifier类〔2〕的实例,并做好配置后进行搜索,然后导出在数据集上找到的最佳性能的模型管道。
  配置类涉及两个主要元素。
  首先是如何评估模型,例如交叉验证方案和性能指标选择。建议使用选择的配置和要使用的性能指标明确指定交叉验证类。
  例如要使用negmeanabsoluteerror作为回归度量,则选用RepeatedKFold〔3〕用于回归交叉验证。定义了评价步骤cvRepeatedKFold(nsplits10,nrepeats3,randomstate1)定义搜索modelTPOTRegressor(。。。scoringnegmeanabsoluteerror,cvcv)
  或者使用accuracy作为分类模型的评价指标,则选用RepeatedStratifiedKFold〔4〕用于分类交叉验证。定义了评价步骤cvRepeatedStratifiedKFold(nsplits10,nrepeats3,randomstate1)定义搜索modelTPOTClassifier(。。。scoringaccuracy,cvcv)
  作为一种进化算法,涉及到较为复杂的配置的设置,例如种群规模、要运行的代数以及潜在的交叉和突变率。前者重要地控制着搜索的范围;如果你对进化搜索算法不熟悉,可以将后者保留设置为默认值。
  例如,100代和5或10代的适度种群规模是一个很好的起点。define搜索modelTPOTClassifier(generations5,populationsize50,。。。)
  在搜索结束时,会找到性能最佳的管道。
  此输出最佳模型的管道可以导出为py文件,后期可以将其复制并粘贴到你自己的项目中。输出最佳模型model。export(tpotmodel。py)TPOT分类
  这里使用TPOT来发现声纳数据集的最佳模型。
  声纳数据集〔5〕是一个标准的机器学习数据集,由208行数据和60个数字输入变量和一个具有两个类值的目标变量组成,例如二进制分类。
  使用具有三个重复分层10折交叉验证的测试工具,朴素模型可以达到约53的准确度。性能最佳的模型可以在相同的测试工具上实现大约88的准确度。这达到了该数据集的预期性能界限。
  该数据集涉及预测声纳返回是否指示岩石或矿井。summarizethesonardatasetfrompandasimportreadcsvloaddatasetdataframereadcsv(data,headerNone)splitintoinputandoutputelementsdatadataframe。valuesX,ydata〔:,:1〕,data〔:,1〕print(X。shape,y。shape)
  导入数据集并将其拆分为输入和输出数据集。可以看到有60个输入变量的208行数据。
  首先,我们可以定义评估模型的方法,使用RepeatedStratifiedKFold交叉验证。定义模型评估器cvRepeatedStratifiedKFold(nsplits10,nrepeats3,randomstate1)
  将使用50个人口大小进行五折搜索,并设置njobs1来使用系统上的所有核心。定义搜索modelTPOTClassifier(generations5,populationsize50,cvcv,scoringaccuracy,verbosity2,randomstate1,njobs1)
  最后,开始搜索并确保在运行结束时保存性能最佳的模型。执行搜索model。fit(X,y)输出最佳模型model。export(tpotsonarbestmodel。py)
  这里可能需要运行几分钟,这里比较人性化的设置就是可以在命令行上看到一个进度条。
  注意:你的结果可能会因算法或评估程序的随机性或数值精度的差异而有所不同。在现实案例中,可以多运行几次并比较平均结果。
  将在此过程中将会输出报告性能最佳模型的准确性。Generation1CurrentbestinternalCVscore:0。8650793650793651Generation2CurrentbestinternalCVscore:0。8650793650793651Generation3CurrentbestinternalCVscore:0。8650793650793651Generation4CurrentbestinternalCVscore:0。8650793650793651Generation5CurrentbestinternalCVscore:0。8667460317460318Bestpipeline:GradientBoostingClassifier(GaussianNB(inputmatrix),learningrate0。1,maxdepth7,maxfeatures0。7000000000000001,minsamplesleaf15,minsamplessplit10,nestimators100,subsample0。9000000000000001)
  这里可以看到表现最好的管道达到了大约86。6的平均准确率。这里接近该数据集上表现最好的模型了。
  最后将性能最佳的管道保存到名为tpotsonarbestmodel。py的文件中。加载数据集和拟合管道的通用代码在声纳数据集上拟合最终模型并做出预测的例子frompandasimportreadcsvfromsklearn。preprocessingimportLabelEncoderfromsklearn。modelselectionimportRepeatedStratifiedKFoldfromsklearn。ensembleimportGradientBoostingClassifierfromsklearn。naivebayesimportGaussianNBfromsklearn。pipelineimportmakepipelinefromtpot。builtinsimportStackingEstimatorfromtpot。exportutilsimportsetparamrecursive导入数据集dataframereadcsv(data,headerNone)拆分为输入变量和输出变量datadataframe。valuesX,ydata〔:,:1〕,data〔:,1〕以尽量小的内存使用数据集XX。astype(float32)yLabelEncoder()。fittransform(y。astype(str))训练集上的交叉验证平均分数为:0。8667exportedpipelinemakepipeline(StackingEstimator(estimatorGaussianNB()),GradientBoostingClassifier(learningrate0。1,maxdepth7,maxfeatures0。7000000000000001,minsamplesleaf15,minsamplessplit10,nestimators100,subsample0。9000000000000001))修正了导出管道中所有步骤的随机状态setparamrecursive(exportedpipeline。steps,randomstate,1)训练模型exportedpipeline。fit(X,y)对新数据行进行预测row〔0。0200,0。0371,0。0428,0。0207,0。0954,0。0986〕yhatexportedpipeline。predict(〔row〕)print(Predicted:。3fyhat〔0〕)TPOT回归
  本节使用TPOT来发现汽车保险数据集的最佳模型。
  汽车保险数据集〔6〕是一个标准的机器学习数据集,由63行数据组成,一个数字输入变量和一个数字目标变量。
  使用具有3次重复的分层10折交叉验证的测试工具,朴素模型可以实现约66的平均绝对误差(MAE)。性能最佳的模型可以在相同的测试工具上实现MAE约28。这达到了该数据集的预期性能界限。
  过程类似于分类。加载数据集和拟合管道的通用代码拟合最终模型并在保险数据集上做出预测的例子frompandasimportreadcsvfromsklearn。modelselectionimporttraintestsplitfromsklearn。svmimportLinearSVR导入数据集dataframereadcsv(data,headerNone)拆分为输入变量和输出变量datadataframe。values以尽量小的内存使用数据集datadata。astype(float32)X,ydata〔:,:1〕,data〔:,1〕训练集上的交叉验证平均分数为:29。1476exportedpipelineLinearSVR(C1。0,dualFalse,epsilon0。0001,losssquaredepsiloninsensitive,tol0。001)修正了导出估计器中的随机状态ifhasattr(exportedpipeline,randomstate):setattr(exportedpipeline,randomstate,1)模型训练exportedpipeline。fit(X,y)对新数据行进行预测row〔108〕yhatexportedpipeline。predict(〔row〕)print(Predicted:。3fyhat〔0〕)实战案例PimaIndiansDiabetes数据集
  这里有一个案例研究〔7〕,使用PimaIndiansDiabetes数据集预测5年内糖尿病的患病率。根据这项研究,作者指出在这个问题上达到的最大准确率为77。47。
  在同一场景中进行自动化机器学习,看看它是如何使用TPOTAutoML工作的。importtheAutoMLpackageafterinstallingtpot。importtpot导入其他必要的包。frompandasimportreadcsvfromsklearn。preprocessingimportLabelEncoderfromsklearn。modelselectionimportStratifiedKFoldfromtpotimportTPOTClassifierimportos导入数据filepath。pimaindiansdiabetes。data。csvdfpd。readcsv(filepath,headerNone)可以用你自己的数据集。csv文件名替换df。dtypesdf。info()
  将数据帧的值拆分为输入和输出特征datadf。valuesX,ydata〔:,:1〕,data〔:,1〕print(X。shape,y。shape)(768,8)(768,)XX。astype(float32)yLabelEncoder()。fittransform(y。astype(str))模型评估定义,这里使用10倍StratifiedKFoldcvStratifiedKFold(nsplits10)定义TPOTClassifiermodelTPOTClassifier(generations5,populationsize50,cvcv,scoreaccuracy,verbosity2,randomstate1,njobs1)执行最佳拟合搜索model。fit(X,y)导出最佳模型model。export(tpotdata。py)
  cv10时的最佳管线选择
  我还用cv5重复了上述实验。模型评估定义,这里使用5foldStratifiedKFoldcvStratifiedKFold(nsplits5)定义TPOTClassifiermodelTPOTClassifier(generations5,populationsize50,cvcv,scoreaccuracy,verbosity2,randomstate1,njobs1)搜索最佳拟合model。fit(X,y)导出最佳模型model。export(tpotdata。py)
  cv5时的最佳管线选择结果
  使用10折交叉验证时选择的最佳管道是:LinearSVC(inputmatrix,C5。0,dualFalse,losssquaredhinge,penaltyl1,tol0。01)Accuracy:77。47
  使用5折交叉验证时选择的最佳管道是:XGBClassifier(ExtraTreesClassifier(inputmatrix,bootstrapTrue,criterionentropy,maxfeatures0。55,minsamplesleaf1,minsamplessplit2,nestimators100),learningrate0。001,maxdepth10,minchildweight13,nestimators100,njobs1,subsample0。9000000000000001,verbosity0)Accuracy:78。39TPOT和其他配置
  为上述问题尝试了TPOT,它仅使用默认配置。其实AutoMLTPOT还有有许多内置配置。下面列出了这些变体:TPOTlight:如果你希望在管道中使用简单的运算符。此外,此配置确保这些运算符也可以快速执行。TPOTMDR:如果你的问题属于生物信息学研究领域,并且此配置非常适合全基因组关联研究。TPOTsparse:如果你需要适合稀疏矩阵的配置。TPOTNN:如果你想利用默认TPOT的神经网络估计器。此外,这些估计器是用PyTorch编写的。TPOTcuML:如果你的数据集大小为中型或大型,并且利用GPU加速的估计器在有限的配置上搜索最佳管道。

2022年买房子合适吗?2022年受到疫情的影响,很多行业都不太景气,原本打算今年买房的人也开始犹豫,各种担心充斥而来。2022年各地也出台了一些买房新政策,那么接下来一起了解一下2022年买房子合适……英国女星蕾切尔薇兹PORTER封面大片,素颜亮相气质优雅新剧《孽扣》月底播出在即,主演蕾切尔薇兹登上《PORTER》杂志新刊封面。在影视作品中艳光四射的美人,洗净铅华面对镜头,素净优雅的气质,淡然悠闲的氛围,53岁的文艺女神,岁月更……朱婷太难了!战升班马轮休失败,主帅遭怒斥成球队最大短板北京时间2月14日,意大利女排联赛第18轮,斯坎迪奇31击败升班马皮内罗洛,稳居联赛第二名的位置。这场比赛中国球员姚迪首发出战,她得到1分。朱婷则是前两局没有打,第三局和第四局……1024程序员节联想工程师,以专业能力与敬业精神拥抱世界1024是2的十次方,二进制技术的基本量单位之一,每年102410月24日是程序员的共同节日,程序员们就像是一个个1024,以最低调、踏实、核心的功能模块与科技搭建起这个世界。……猎天使魔女起源年轻人的第一款单人版双人成行在去年《蓓优妮塔3》(俗称贝姐3)发售不久之后,《蓓优妮塔起源》的消息就传了出来。第一次听说这个消息时,我一度以为白金工作室终于改变了以往被大伙广为调侃的摆烂风格,开始流……环球科学用反射光识别幸存者在灾后救援中,无人机通常用于绘制受损区域的地图,以帮助救援人员找到可能的幸存者。现在,研究人员开发了一种新系统,可以让无人机自动分析镜头,以确定发现的人是否还活着。这是自动识别……周五晚间迎来两大利好,下周这两个板块或将迎来大幅上涨周五晚间,消息面并不平静,陆续迎来两大利好消息:国家能源局:前7月全社会用电量同比增长3。4;央视联播重磅报道:13部门若干措施促进绿色智能家电消费。利好一:国家能源局:……经常被失眠困扰,不妨试试这5个方法,或能远离失眠有关的统计数据显示,现如今失眠问题越来越严峻,尤其是中年人上有老下有少,同时还面临着工作上的压力,所以往往会有失眠的问题。虽然失眠突然之间带给人体的影响不大,但是积液里的……康熙朝一等公才13人,这家人就占了4个,但二十年后家族走向没赫舍里氏是康熙初年最显赫的家族,没有之一。自康熙元年索尼担任首辅以后,赫舍里家族走上快车道,到了康熙二十年时达到鼎盛,索尼的五个儿子,其中三个都是一等公爵,还有一个伯爵。这样的……党史学习教育每日答题(11月24日)01hr近代以来中国半殖民地半封建社会的矛盾,呈现出错综复杂的状况,其中,贯穿整个中国半殖民地半封建社会始终,并对中国近代社会的发展变化起决定性作用的最主要矛盾是()。A……真香属性拉满!一加AcePro快闪活动火爆,我找到了很多真实作为一加下半年推出的骁龙8新机,一加AcePro如约而至。相较于同价位机型而言,这款新机拥有许多亮眼的卖点,不仅配置进行了全面升级,还标配大内存版本,却拥有更低的价格,这种配置……这是一个草长莺飞百花闹春的季节处处是春天,芬香扑鼻来。进入三月,随着气温的持续攀升,无论城里还是乡村,都被各种各样的鲜花所包围。小草纷纷苏醒,换上了绿装,翠柳也翩翩起舞。在城市的街道两边,樱花桃……
关于开展年终奖励绩效考核的通知通知,是运用广泛的知照性公文。用来发布法规、规章,转发上级机关、同级机关和不相隶属机关的公文,批转下级机关的公文,要求下级机关办理某项事务等。通知,一般由标题、主送单位(受文对……五年级学生竞选红领巾广播站站长演讲稿范文尊敬的老师、亲爱的同学们:大家下午好!我是五、三班的李Xx。今天很高兴能站在这里,竞选红领巾广播站站长。广播站是学校宣传的摇篮,是师生交流的平台。我之所以竞选这个职……超级执行力走出知道却做不到的怪圈提问几个问题回想一下自己是否有着这样的经历:明知道阅读很重要,转身却玩起了手机;明知道运动有益健康,开始了两天又没了动静;明知道高糖,高热量的东西不宜多吃,但内心总有个声……快看!刘伟元变成灰太狼进入帕羊镇了〔呲牙〕〔呲牙〕〔呲牙〕看完刘伟元今天的骑行视频,我满脑子就一个词:灰太狼!哈哈!小哥哥听说前方目的地帕羊镇的羊肉好吃,就心心念念了一路啊!除了念叨想喝水,就是念叨……极具创意设计的开放式耳机!塞那Z61S体验养了一身膘熬过了寒冬,春天不锻炼夏天怎么展现?工欲善其事必先利其器,要锻炼没有运动耳机怎么能够,正好塞那新出的开放式佩戴不入耳Z61S耳挂式耳机,不仅在造型上更有新意,佩戴起来……恭喜瓦妮莎,科比迎来好消息,湖人制定重要计划,珍妮有情有义北京时间7月16日,NBA继续处于休赛期,洛杉矶湖人队的动向备受关注,湖人队正在策划如何送走威少,然而,想要接盘的球队并不多。詹姆斯和欧文眉来眼去,詹姆斯的团队连续向湖人队施压……拒绝垃圾社交,到底有多爽?你拒绝过吗?(漫画)人与人之间实现了沟通交流,便形成一定社交圈。当然,在这个圈子里,并不是所有人都能照顾到所有人,也会被人看不起,所以,在圈子里,有喜欢你的,也有不喜欢你的。我们经常说……布局佛山数字经济集聚区,华为腾讯等巨头为禅城带来了什么?不久前,华为(禅城)工业互联网创新中心正式启用,这是华为工业互联网项目在佛山的首度布局。不远处,从深圳来到禅城的工业互联网平台国家队华润数科,其工业互联网产业总部已开始运……分享抗癌中药十大功劳,清热,燥湿,解毒,组方用于多种肿瘤十大功劳【品种来源】小檗科植物阔叶十大功劳的叶、茎、根。叶秋季采收,除去杂质,晒干。根全年可采,洗净晒干。鲜用随时可采。【性味】味苦、性寒。【归经】归肺、胃、……WTA迈阿密站朱琳王欣瑜惨遭淘汰张帅郑赛赛宣告退赛WTA迈阿密1000赛:北京时间3月25日早上结束了WTA迈阿密站女单第二轮下半区的较量中国球员朱琳以46;26不敌捷克球员穆霍娃,继WTA印第安维尔斯站一轮游后,……女排未来2大主力!朱婷难获重用,主教练人选基本已定中国女排在东京奥运会上的表现,可以说是一塌糊涂,但是对于任何一支球队来说,不可能长期保持着自己的巅峰期,有输有赢是再正常不过的了,因此很多球迷也表示非常理解中国女排现在的困境,……30年足坛最帅阵容足球运动员球踢得好很重要,否则你就无法在世界舞台展现自己,如果长相再英俊的话,那就是明明可以靠脸吃饭,却非要靠才华吃饭了。为什么是只写这30年呢?因为时间太久远的帅哥踢球时我没……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网