常用机器学习分类算法(机器学习中集成学习)
常用机器学习分类算法(机器学习中集成学习)
2024-07-04 02:30:29  作者:散了酒香  网址:https://m.xinb2b.cn/life/zft146648.html

常用机器学习分类算法(机器学习中集成学习)(1)

什么是集成方法?

集成方法是通过建立一组独立的机器学习模型,组合多个模型的预测对类标签进行预测的方法。这种策略组合可以减少总误差,包括减少方差和偏差,或者提高单个模型的性能。

常用机器学习分类算法(机器学习中集成学习)(2)

在这里,我使用来自Kaggle的“红酒质量”数据(https://www.kaggle.com/uciml/red-wine-quality-cortez-et-al-2009)来演示集成方法。“quality”是我们的目标变量。我唯一要做的预处理就是将10分制的评分转换为3个分类级别,“ 1”,“ 2”和“ 3”分别代表“好”,“中”和“差”。

import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_score#import datawine = pd.read_csv('winequality.csv')#preprocess datadef getquality(x): if x > 6.5: return 1 elif x < 4.5: return 3 else: return 2wine['quality'] = wine['quality'].apply(getquality)#seperate features and target variablex = wine.drop(['quality'], axis=1)y = wine['quality']#split into train and test dataxtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.2, random_state=1)#copy code to deal with SettingWithCopyWarnxtrain = xtrain.copy()xtest = xtest.copy()ytrain = ytrain.copy()ytest = ytest.copy()

机器学习模型1:

默认的DecisionTreeClassifier()的准确性得分是0.815625。

from sklearn.tree import DecisionTreeClassifiermodel = DecisionTreeClassifier()model.fit(xtrain, ytrain)model_pred = model.predict(xtest)#see prediction resultprint('Accuracy Score: {0:6f}'.format(model.score(xtest, ytest)))

Bagging

所谓的bootstrapping aggregation,其思想是在随机不同版本的训练数据上训练许多基础模型。每个模型拥有一票表决权,并且无​​论预测准确度如何,都做相同的处理,然后对预测变量进行汇总以得出最终结果。在大多数情况下,Bagging后结果的方差会变小。例如,随机森林是Bagging方法中最著名的模型,它将决策树与Bagging理念结合在一起。

我们通常在每一轮中使用bootstrapping方法(替换样本)从原始样本集中提取训练子集。因此,在训练集中,有些样本可能被多次使用,而有些样本可能永远不会被使用。这使得训练子集是独立的。

模型的选择没有限制,我们根据所面临的问题采用不同的分类器或回归器。每个预测模型都可以由训练集并行生成。它们同等重要,所占比重相同。在合并输出后,我们对分类问题使用多数投票,对回归问题使用平均投票。

机器学习模型2:

我们没有建立随机森林分类器,而是将决策树与BaggingClassifier()结合使用,得到了0.856250的准确率。

from sklearn.ensemble import BaggingClassifiermodel = BaggingClassifier(base_estimator=clf, random_state=0)model.fit(xtrain, ytrain)model_pred = model.predict(xtest)#see prediction resultprint('Accuracy Score: {0:6f}'.format(model.score(xtest, ytest)))

boosting

boosting和bagging之间最本质的区别在于,boosting并不会同等的对待基础模型,而是通过连续的测试和筛选来选择“精英”。表现良好的模型对投票的权重更大,而表现较差的模型的权重更小,然后将所有的投票组合得到最终结果。在大多数情况下,boosting后结果的偏差会变小。例如,Adaboost和Gradient boost是boosting方法中最常用的模型。

一般情况下,每一轮的训练集保持不变,但在boosting轮次结束时,模型中每个样本在训练集中的分布可能会发生变化。这是一个迭代过程,它更关注(增加权重)以前错误分类的记录,而忽略(减少权重)前一轮中正确的记录。换句话说,它可以将弱学习者的表现提高到强学习者的水平。

与bagging不同,每个预测模型只能顺序生成,因为后一个模型的参数需要前一个模型的结果。汇总模型后,我们对分类问题使用多数投票,对回归问题进行平均。

机器学习模型3:

GradientBoostingClassifier()给我们的准确率评分为0.846875,也高于没有boost的准确率。

from sklearn.ensemble import GradientBoostingClassifiermodel = GradientBoostingClassifier(random_state=0)model.fit(xtrain, ytrain)model_pred = model.predict(xtest)#see prediction resultprint(‘Accuracy Score: {0:6f}’.format(model.score(xtest, ytest)))

Stacking

对基础模型(弱学习者)的结果进行平均或投票相对简单,但是学习误差可能很大,因此创建了另一种学习方法(Stacking)。Stacking策略不是对模型的结果进行简单的逻辑处理,而是在模型外增加一层。

因此,我们总共有两层模型,即通过预测训练集建立第一层模型,然后将训练集预测模型的结果作为输入,再对第二层新模型进行训练,得到最终结果。基本上,Stacking可以减少方差或bagging/boosting的偏差。

机器学习模型4:

StackingClassifier()的准确率得分为0.875000。虽然与第1层模型相比,它不是最高的,但它成功地提高了决策树和KNN的性能。

常用机器学习分类算法(机器学习中集成学习)(3)

from sklearn.neighbors import KNeighborsClassifierfrom sklearn.ensemble import RandomForestClassifierfrom mlxtend.classifier import StackingClassifier#build two layer models using stackinglayer1 = [DecisionTreeClassifier(), KNeighborsClassifier(), RandomForestClassifier(random_state=0)]layer2 = GradientBoostingClassifier(random_state=0)model = StackingClassifier(classifiers=layer1, meta_classifier=layer2)model.fit(xtrain, ytrain)model_pred = model.predict(xtest)#see prediction resultprint(‘Accuracy Score: {0:6f}’.format(model.score(xtest, ytest)))

最后

常用机器学习分类算法(机器学习中集成学习)(4)

从混淆矩阵中,我们发现对于所有模型而言,葡萄酒的中等级别(第二行)确实很难预测。但是,葡萄酒的差等级(第三行)更容易识别。

尽管我们能够在不理解场景背后的情况下构建模型,但是仍然建议您了解每个机器学习模型是如何工作的。因为只有对一个模型有了更多的了解,我们才能有效地使用它,并解释它是如何正确地做出预测的。

  • 我叫郝聪明之笨蛋爱上两个你34集(笨蛋爱上两个你)
  • 2024-07-04笨蛋爱上两个你电视剧《我叫郝聪明之笨蛋爱上两个你》,演的是郝聪明一个不愿意听从父母的安排而和从小青梅竹马的唐花,一个只有钱的富二代在一起而自己在北京一个人漂泊在工作上郝聪明是一个爱岗敬业的设计师,但是一个宋晓晓改变。
  • 古剑奇谭3到底好不好玩(古剑奇谭3冲入热销榜前五)
  • 2024-07-04古剑奇谭3冲入热销榜前五先说重点!《古剑奇谭三》现在是Steam热销榜前5,厉害!最近《古剑奇谭三》在打折,棒!4月11《古剑奇谭三》将免费更新资料片,良心!古剑奇谭三打折时间是现在—4月16日(Steam平台),折扣是75。
  • 孙红雷说往前走的时候都哭了(又是因为这件事...)
  • 2024-07-04又是因为这件事...继王源“违法抽烟事件”后,孙红雷重蹈覆辙7月13号,有媒体曝光:孙红雷和朋友当天在北京朝阳区某商业街一家餐厅聚餐孙红雷有些愁眉苦脸,随后掏出雪茄开始正大光明地抽起烟来图片来源:@凤凰网娱乐昨日,孙红雷。
  • 张爱玲苏青后来咋样了(苏青与张爱玲塑料姐妹花)
  • 2024-07-04苏青与张爱玲塑料姐妹花本文刊载于《作家文摘》第2583期6版一说到张爱玲的朋友,除了炎樱、邝文美,避不开的还有苏青第一证据便是张爱玲写的《我看苏青》,这实际上是张爱玲为苏青的散文集《浣锦集》写的序:“如果必须把女作者特别分。
  • 白茶小说作品有哪些(盘点白茶四部经典小说)
  • 2024-07-04盘点白茶四部经典小说《天价宠妻:霍总请接招》:这是现代言情系列小说,其中主人公为年雅璇和霍凌沉《天价宠妻:霍总的小娇妻》《婚内燃情:娇妻高高在上》主要讲的是主角苏小夏代替姐姐去相亲,但是万万没想到,假戏成真了《落难的尤物。
  • 什么叫梗概
  • 2024-07-04什么叫梗概1梗概是指对一段文字或一个故事进行简略、概括的描述2梗概通常只包括最重要、最关键的情节和信息,而忽略了细节和次要的内容,以达到简明扼要的效果3梗概常用于文学作品的简介、电影、电视剧的剧情介绍、学术论文。
  • 济南神秘洞穴图解(济南五龙潭奇闻)
  • 2024-07-04济南五龙潭奇闻济南是一座历史悠久的城市,因着大明湖、趵突泉等一众泉水景观而闻名而五龙潭作为济南四大著名泉群中水质最好的泉群,也吸引了一众游客纷纷前往,就是这样一汪名泉,却在2007年时发生了一件怪事2007年10月。
  • 一首经典传唱歌曲送给你(一曲红遍大江南北的经典歌曲-牵手)
  • 2024-07-04一曲红遍大江南北的经典歌曲-牵手因为爱着你的爱因为梦着你的梦所以悲伤着你的悲伤幸福着你的幸福因为路过你的路因为苦过你的苦所以快乐着你的快乐追逐着你的追逐因为誓言不敢听因为承诺不敢信所以放心着你的沉默去说服明天的命运没有风雨躲得过没有。
  • 福州图书馆什么时候恢复营业 福州市图书馆等公共场所开放时间确定
  • 2024-07-04福州图书馆什么时候恢复营业 福州市图书馆等公共场所开放时间确定福网君今日获悉我市部分公共文化服务场馆16日起将分阶段、分区域有序恢复对外开放福州市群众艺术馆琴房福州市群众艺术馆琴房16日起接受预约、预定使用时间较往常有所变化具体时间周一至周五(9:30~11:3。
  • 班尼路羽绒服质量怎么样(班尼路属于的档次)
  • 2024-07-04班尼路属于的档次前言:随着国际快时尚品牌进入中国市场,班尼路的危机悄然来临班尼路诞生于1981年,本身为意大利品牌,80年代开始在香港经营最早班尼路的名字叫宾奴,1987年,澳门富城公司成为宾奴的中国市场经销商进入内。
  • 健康卡怎么解除绑定(有什么办法)
  • 2024-07-04有什么办法打开微信这个页面,点“支付”点右上角“钱包”点第三个健康卡点你想解除绑定的银行卡号点右上角“...”点解除绑定(如把所绑银行卡都解除绑定,依如上步骤一一进行绑除)可以到制作健康卡的医院去进行解除关联,。