集成学习——提升法Boosting(机器学习)

发布时间:2025-01-06 14:45

深度学习模型的集成学习,如bagging和boosting #生活技巧# #学习技巧# #深度学习技巧#

会做饭的网络工程师 已于 2022-11-23 21:22:55 修改

于 2022-10-11 20:15:31 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

目录

一、实验内容

二、实验过程

1、算法思想

2、算法原理

3、算法分析

三、源程序代码

四、运行结果及分析

五、实验总结

一、实验内容

熟知集成学习方法的概念和基本算法思想;掌握提升法的算法原理;掌握提升法的设计及Python实现。

二、实验过程

1、算法思想

        进行N轮训练,每一轮中使用一个分类方法训练出一个分类模型,使用此分类模型对所有样本进行分类并更新所有样本的权重。

        分类正确的样本权重降低,分类错误的样本权重增加。每一次训练都会生成一个分类模型,而每次生成的这个分类模型都会更加注意之前分类错误的样本,从而提高样本分类的准确率。

2、算法原理

        每个模型都针对前序模型的错误进行专门训练.根据前序模型的结果,来调整训练样本的权重,从而增加不同基模型之间的差异性.

3、算法分析

在提升法中,有两个主要问题需要解决:

一是如何在每轮算法结束之后根据分类情况更新样本的权重;

二是如何组合每一轮算法产生的分类模型得出预测结果。

三、源程序代码

from sklearn.model_selection import KFold

from sklearn.model_selection import cross_val_score

from sklearn.ensemble import AdaBoostClassifier

from sklearn.tree import DecisionTreeClassifier

from sklearn import datasets

dataset_all = datasets.load_breast_cancer()

X = dataset_all.data

Y = dataset_all.target

seed = 42

kfold = KFold(n_splits=10, random_state=seed, shuffle=True)

dtree = DecisionTreeClassifier(criterion='gini',max_depth=3)

dtree = dtree.fit(X, Y)

result = cross_val_score(dtree, X, Y, cv=kfold)

print("决策树结果:",result.mean())

model = AdaBoostClassifier(base_estimator=dtree, n_estimators=100,random_state=seed)

result = cross_val_score(model, X, Y, cv=kfold)

print("提升法改进结果:",result.mean())

四、运行结果及分析

五、实验总结

        提升法(Boosting)通俗的讲就是,n道选择题,先让学渣A做一遍,然后再让学渣B做,且让B重点关注A做错的那些题,再让C做,同样重点关注B做错的,依次循环,直到所有的学渣都把题目做了一遍为止。

网址:集成学习——提升法Boosting(机器学习) https://www.yuejiaxmz.com/news/view/656080

相关内容

机器篇——集成学习(三) 细说 提升(Boosting) 算法
机器学习(七):提升(boosting)方法
提升方法与集成学习(学习笔记)
集成学习:投票法、提升法、袋装法
集成学习——梯度提升法GDBT(机器学习)
4.3.4.集成学习(一)
集成学习:装袋法Bagging与随机森林
Boosting和Bagging
提升成绩的学习方法集锦
机器学习提升秘籍:Scikit

随便看看