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


什么是集成方法?

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


在这里,我使用来自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的性能。


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)))

最后


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

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

  • 洗袜子怎么能柔软(如何让袜子洗后变柔软)
  • 2024-11-22如何让袜子洗后变柔软袜子洗完会变硬是由于纤维老化,杂质沉积的原因,在没有柔顺液的情况下,可用开水加洗衣粉煮20分钟,再洗净就会柔软如新了最后过洗的时候放一点醋浸一下,或用淘过大米的水浸泡一会儿再洗,再晾干就会保持它的柔软。
  • 国产相机什么牌子好(国产蓝剑360°全景照相机)
  • 2024-11-22国产蓝剑360°全景照相机早些年,国产照相机工业不仅要为民用照相机生产,还肩负着国防、科技、医疗、教学等各种使命,也研发了很多特殊行业使用的摄影器材,这些小众的东西,很多人并不知道小众的摄影器材,现在成了相机收藏爱好者搜寻的目。
  • 为什么说江苏高考数学试卷最难
  • 2024-11-22为什么说江苏高考数学试卷最难题型上就和全国卷有着十分明显的区别,数学卷如今全国的考卷题型分布为选择题,填空题和数学综合计算题但是江苏数学卷只有填空题和计算大题,这就意味着没了选择题这种题型,如果真的是数学很差的话,可能一道题目都。
  • 烤箱如何做巧克力蛋糕(烤箱怎么做巧克力蛋糕)
  • 2024-11-22烤箱怎么做巧克力蛋糕将250克鸡蛋和200克砂糖混合后打成膏状泡沫将100克面粉和60克可可粉拌在一起,过滤之后加在泡沫里拌起来制成混合物在模子里垫上一层油纸,倒入上述混合物,放到烤箱里面烤将火温控制在200摄氏度左右,。
  • 包青天为啥不是四大名著(为何百姓会铭记千年之久的包青天)
  • 2024-11-22为何百姓会铭记千年之久的包青天大宋为何能有包青天,他的存在与宋仁宗有多大关系?包青天剧照包青天不为强权,一路惩奸除恶,为民作主!那是谁给了他的底气呢?他只不过是一位相当于现在的市长或省长而已,全国像他这样官位的比比皆是,他又怎么对。
  • 现在孩子上学真心不容易(看过这5条建议家长终于淡定了)
  • 2024-11-22看过这5条建议家长终于淡定了要想让孩子轻松愉快地度过在家上学的时光,可不是一味逼迫收读就能行得通哦,它需要大量的练习以下是对我很有用的5条建议,希望能让你们少一些焦虑,多一些从容忘掉之前所有的固有认知孩子年龄越大,他就越需要正式。
  • 手工樱花树卡纸:樱花树的折纸方法你们会吗
  • 2024-11-22手工樱花树卡纸:樱花树的折纸方法你们会吗樱花树属于落叶小乔木,国内普遍有早樱、晚樱,垂枝樱,云南樱等品种,晚樱在国内种植及园林绿化中运用比较广泛产地浙江、安徽、江苏、四川、山东、河南等,樱花是早春重要的观花树种,被广泛用于园林观赏樱花可以群。
  • 绝地枪王于毅采访(绝地枪王今晚开播)
  • 2024-11-22绝地枪王今晚开播娄底新闻网讯由于毅等实力派演员主演的《绝地枪王》将于今日强势登陆河北、天津、湖北、吉林四大卫视黄金档开播剧中,于毅挑大梁饰演“枪王那五常”化身为萨满猎人因家乡被日本侵略而放弃继承师傅衣钵成为萨满大祭司。
  • 惯性质量和引力质量分别是什么(物理学上的质量是什么)
  • 2024-11-22物理学上的质量是什么当物体移动时,它的质量会不断增加,并且当速度接近光速时,这个质量会逐渐增加到无穷大因此,无论你用多大的力量和能量来加速一个物体,它只能无限接近光速,而不能达到光速,更不用说超光速了,然后,许多非常好学。
  • swarovski施华洛世奇手链银天鹅(SWAROVSKI施华洛世奇Delta)
  • 2024-11-22SWAROVSKI施华洛世奇Delta这款项链,尺寸为38cm,奥地利进口,项链坠为一个V字型,上面镶有精致的仿水晶,闪现柔和悦目的光彩;项链颜色为镀白金色,璀璨耀人;戴在脖子上,净显迷人风采,高贵优雅目前京东全球购特价至399元包邮,历。
  • 虎年财神几点接(大年初八顺星节)
  • 2024-11-22大年初八顺星节2月8日是大年初八,“八”在中国人眼里有“发”之意,因而这天是吉祥喜庆的日子,很多老板都会选择在这天开工,希望新的一年“八方来财”其实,大年初八也有诸多讲究和说法,“做6事忌3样”,老传统不能忘,虎年。
  • 腾讯新建大楼(腾讯370亿建全球新总部)
  • 2024-11-22腾讯370亿建全球新总部腾讯全球总部已经动工开建了!根据深圳本地报媒(深圳商报)发布的报道显示:腾讯“企鹅岛”项目(即深圳大铲湾项目,此前项目名叫“科技岛”)于日前正式动土兴建;上述媒体记者从当地相关部门(宝安区发改局)了解。