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

目录

一、实验内容

二、实验过程

1、算法思想

2、算法原理

3、算法分析

三、源程序代码

四、运行结果及分析

五、实验总结



集成学习——提升法Boosting(机器学习)_第1张图片

一、实验内容


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

二、实验过程


1、算法思想


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

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

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(机器学习)_第2张图片

五、实验总结


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

你可能感兴趣的:(机器学习,机器学习,集成学习,boosting)