机器学习模型的集成方法总结:Bagging,Boosting,Stacking,Voting,Blending算法拟合svm大模型

机器学习是人工智能的一个分支领域,致力于构建自动学习和自适应的系统,它利用统计模型来可视化、分析和预测数据。一个通用的机器学习模型包括一个数据集(用于训练模型)和一个算法(从数据学习)。但是有些模型的准确性通常很低产生的结果也不太准确,克服这个问题的最简单的解决方案之一是在机器学习模型上使用集成学习。

集成学习是一种元方法,通过组合多个机器学习模型来产生一个优化的模型,从而提高模型的性能。集成学习可以很容易地减少过拟合,避免模型在训练时表现更好,而在测试时不能产生良好的结果。

总结起来,集成学习有以下的优点:

下面我们将介绍各种集成学习的方法:

Voting

Voting是一种集成学习,它将来自多个机器学习模型的预测结合起来产生结果。在整个数据集上训练多个基础模型来进行预测。每个模型预测被认为是一个“投票”。得到多数选票的预测将被选为最终预测。

有两种类型的投票用于汇总基础预测-硬投票和软投票。

硬投票选择投票数最高的预测作为最终预测,而软投票将每个模型中每个类的概率结合起来,选择概率最高的类作为最终预测。

在回归问题中,它的工作方式有些不同,因为我们不是寻找频率最高的类,而是采用每个模型的预测并计算它们的平均值,从而得出最终的预测。

fromsklearn.ensembleimportVotingClassifier##BaseModelsfromsklearn.treeimportDecisionTreeClassifierfromsklearn.linear_modelimportLogisticRegressionfromsklearn.naive_bayesimportGaussianNBfromsklearn.neighborsimportKNeighborsClassifierfromsklearn.svmimportSVCensemble_voting=VotingClassifier(estimators=[('dtc',DecisionTreeClassifier(random_state=42)),('lr',LogisticRegression()),('gnb',GaussianNB()),('knn',KNeighborsClassifier()),('svc',SVC())],voting='hard')ensemble_voting.fit(X_train,y_train)

Bagging

Bagging是采用几个弱机器学习模型,并将它们的预测聚合在一起,以产生最佳的预测。它基于bootstrapaggregation,bootstrap是一种使用替换方法从集合中抽取随机样本的抽样技术。aggregation则是利用将几个预测结合起来产生最终预测的过程。

随机森林是利用Bagging的最著名和最常用的模型之一。它由大量的决策树组成,这些决策树作为一个整体运行。它使用Bagging和特征随机性的概念来创建每棵独立的树。每棵决策树都是从数据中随机抽取样本进行训练。在随机森林中,我们最终得到的树不仅接受不同数据集的训练,而且使用不同的特征来预测结果。

Bagging通常有两种类型——决策树的集合(称为随机森林)和决策树以外的模型的集合。两者的工作原理相似,都使用聚合方法生成最终预测,唯一的区别是它们所基于的模型。在sklearn中,我们有一个BaggingClassifier类,用于创建除决策树以外的模型。

##BaggingEnsembleofSameClassifiers(DecisionTrees)fromsklearn.ensembleimportRandomForestClassifierclassifier=RandomForestClassifier(n_estimators=10,criterion="entropy")classifier.fit(x_train,y_train)##BaggingEnsembleofDifferentClassifiersfromsklearn.ensembleimportBaggingClassifierfromsklearn.svmimportSVCclf=BaggingClassifier(base_estimator=SVC(),n_estimators=10,random_state=0)clf.fit(X_train,y_train)

Boosting

增强集成方法通过重视先前模型的错误,将弱学习者转化为强学习者。Boosting以顺序的方式实现同构ML算法,每个模型都试图通过减少前一个模型的误差来提高整个过程的稳定性。

在训练n+1模型时,数据集中的每个数据点都被赋予了相等的权重,这样被模型n错误分类的样本就能被赋予更多的权重(重要性)。误差从n个学习者传递给n+1个学习者,每个学习者都试图减少误差。

ADABoost是使用Boost生成预测的最基本模型之一。ADAboost创建一个决策树桩森林(一个树桩是一个只有一个节点和两个叶子的决策树),不像随机森林创建整个决策树森林。它给分类错误的样本分配更高的权重,并继续训练模型,直到得到较低的错误率。

fromsklearn.treeimportDecisionTreeClassifierfromsklearn.ensembleimportAdaBoostClassifierdt=DecisionTreeClassifier(max_depth=2,random_state=0)adc=AdaBoostClassifier(base_estimator=dt,n_estimators=7,learning_rate=0.1,random_state=0)adc.fit(x_train,y_train)

Stacking

Stacking也被称为叠加泛化,是DavidH.Wolpert在1992年提出的集成技术的一种形式,目的是通过使用不同的泛化器来减少错误。

叠加模型利用来自多个基础模型的预测来构建元模型,用于生成最终的预测。堆叠模型由多层组成,其中每一层由几个机器学习模型组成,这些模型的预测用于训练下一层模型。

在叠加过程中,将数据分为训练集和测试集两部分。训练集会被进一步划分为k-fold。基础模型在k-1部分进行训练,在k部分进行预测。这个过程被反复迭代,直到每一折都被预测出来。然后将基本模型拟合到整个数据集,并计算性能。这个过程也适用于其他基本模型。

来自训练集的预测被用作构建第二层或元模型的特征。这个第二级模型用于预测测试集。

fromsklearn.neighborsimportKNeighborsClassifierfromsklearn.treeimportDecisionTreeClassifierfromsklearn.svmimportSVCfromsklearn.linear_modelimportLogisticRegressionfromsklearn.ensembleimportStackingClassifierbase_learners=[('l1',KNeighborsClassifier()),('l2',DecisionTreeClassifier()),('l3',SVC(gamma=2,C=1)))]model=StackingClassifier(estimators=base_learners,final_estimator=LogisticRegression(),cv=5)model.fit(X_train,y_train)

Blending

Blending是从Stacking派生出来另一种形式的集成学习技术,两者之间的唯一区别是它使用来自一个训练集的保留(验证)集来进行预测。简单地说,预测只针对保留得数据集。保留得数据集和预测用于构建第二级模型。

总结

在阅读完本文之后,您可能想知道是否有选择一个更好的模型最好得方法或者如果需要的话,使用哪种集成技术呢?

在这个问题时,我们总是建议从一个简单的个体模型开始,然后使用不同的建模技术(如集成学习)对其进行测试。在某些情况下,单个模型可能比集成模型表现得更好,甚至好很多好。

回到我们的问题,集成模型旨在通过组合同一类别的几个基本模型来提高模型的可预测性。每种集成技术都是最好的,有助于提高模型性能。

如果你正在寻找一种简单且易于实现的集成方法,那么应该使用Voting。如果你的数据有很高的方差,那么你应该尝试Bagging。如果训练的基础模型在模型预测中有很高的偏差,那么可以尝试不同的Boosting技术来提高准确性。如果有多个基础模型在数据上表现都很好好,并且不知道选择哪一个作为最终模型,那么可以使用Stacking或Blending的方法。当然具体那种方法表现得最好还是要取决于数据和特征分布。

最后集成学习技术是提高模型精度和性能的强大工具,它们很容易减少数据过拟合和欠拟合的机会,尤其在参加比赛时这是提分的关键。

THE END
1.独家菜鸟级机器学习入门(附代码实例)现在当这些算法需要训练(Train)和校对(Calibrate)的时候, 其实是需要去找出一组点之间的最小距离。让我们看图更能说清楚。 以上图为例。这是一个经典的线性回归(Simple Linear Regression)的例子。蓝点表示想要预测的数据。红线表示“最佳拟和线”,该线是机器学习https://mp.weixin.qq.com/s?__biz=MzI1MjQ2OTQ3Ng==&mid=2247496248&idx=1&sn=ea19a9160d85b92060eafd4eeef8ce36&chksm=e9e1fbb3de9672a56e3c7c35792536e5abd1cf536d829beeeed52e1182059642c88e2b4ac4f7&scene=27
2.67页PPT,学透机器学习算法应用及数据处理(附下载)作为AI的重要分支,机器学习在推荐系统、在线广告、金融市场分析、计算机视觉、语言学、生物信息学等诸多领域都取得了巨大的成功。机器学习并不是像我们字面理解的那样,让冷冰冰的机器去学习,或者狭义的理解为让机器人去学习。 机器学习,从本质上来说,可以理解为算法学习(Algorithm Learning)、模型学习(Model Learning)或https://www.jianshu.com/p/fd5cff6ce3bf
3.机器学习实习记录:探索机器学习算法的实践与应用机器学习在这篇文章中,我将分享我的机器学习实习经历,包括实践项目的详细描述以及相应的源代码。通过这些实践项目,我深入了解了机器学习算法的原理,并将其应用于不同的领域,以解决现实世界中的问题。 项目1:房价预测 在这个项目中,我使用了一个经典的机器学习算法——线性回归,来预测房屋的价格。首先,我收集了一个包含房屋https://download.csdn.net/blog/column/12438025/133230425
4.张量神经网络机器学习算法及其应用题目:张量神经网络机器学习算法及其应用报告人:谢和虎 研究员 中国科学院数学与系统科学研究院)时间:2023年9月19日(星期二)15:00-16:00地点:宁静楼117室报告摘要:本报告介绍我们最近设计和发展的张量神经网络及其相应的机器学习算法,然后介绍其在求解高维偏微分方https://math.tongji.edu.cn/info/1385/10895.htm
5.机器学习及其应用——汪荣贵杨娟薛丽霞编著深度凝练机器学习的现有知识体系,注重突出对基本理论与关键技术的介绍和讨论。 尽可能用朴实的语言深入浅出地介绍机器学习理论及相关算法设计技术。 在每个章节穿插相应的应用实例,使得广大读者能够比较系统地掌握机器学习应用技术。 本书教学资源,样书可添加小编微信13146070618索取 《机器学习及其应用》比较系统地介绍机器学http://www.cmpedu.com/books/book/5600562.htm
6.字节跳动AI高级产品经理田宇洲:AI产品经理需要掌握的核心算法这个问题我们拆解开看,先说AI产品经理,我个人接触到的AI产品经理可以分为两类,一类是将机器学习和深度学习能力产品化的产品经理,如阿里PI,第四范式先知平台的产品经理,或者BI系统中负责机器学习算法模块组件化抽象的产品经理;一类是AI解决方案产品经理,也就是将AI技术(机器学习,深度学习等技术)应用于业务或用户使用场https://maimai.cn/article/detail?fid=1246742214&efid=hW5NlFAEkS-MHjfZl5IAxg
7.机器学习(32)之典型相关性分析(CCA)详解文末有福利【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 人工智能与Python公开课 限时免费 文末领取 前言 典型关联分析(Canonical Correlation Analysis,简称CCA)是最常用的挖掘数据关联关系的算法之一。比如我们拿到两组数据,第一组是人身高和体重的数据,第二组是对应的跑步能力https://cloud.tencent.com/developer/article/1085170
8.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置业务场景延伸,数据量爆发式增长,使得开源大数据机器学习算法的应用场景广泛而多样。但随之也带来了更大的挑战,开源算法收敛速度慢,硬件匹配度不足,导致很多场景算不了、算不快、算得贵。 鲲鹏应用使能套件BoostKit提供基于开源算法深度优化的机器学习算法,为开发者提供极致性能的大数据分析体验。 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088
9.数字化观察(100)华夏银行吴永飞等:数字金融领域小样本学习技术的机器学习算法模型 传统的商业银行风控体系以定性风险管理为主,主要使用风控规则及客户评级等方法,辅以线下尽调的方法;传统风控模型对包含客户历史行为和相关活动的数据进行分析,但难以预测性地揭示未来风险的变化情况,且数据获取方式单一、定量分析结果相对较弱。数字经济时代下面向数字金融发展,商业银行越来越强调运用金融https://bank.hexun.com/2022-05-31/206058282.html
10.《常用算法之智能计算(三)》:机器学习计算从更广泛的意义上来看,机器学习是人工智能的一个子集。人工智能旨在使计算机更加智能化,而机器学习已经证明如何做到这一点。简而言之,机器学习是人工智能的应用,通过应用从数据中反复学习得到算法,可以改进计算机的功能,而无需进行明确的编程。 在给出机器学习计算各种算法之前,最好是先研究一下什么是机器学习和如何对http://www.kepu.net/blog/zhangjianzhong/201903/t20190327_475625.html