目录
摘要
13 AdaBoost算法
13.1 本章工作任务
13.2 本章技能目标
13.3 本章简介
13.4 编程实战
13.5 本章总结
13.6 本章作业
本章已完结!
摘要
本章实现的工作是:首先采用Python语言读取数据并构造训练集和测试集。然后建立AdaBoost模型,利用训练集训练该模型,接着优化最大迭代次数,得到AdaBoost优化模型,求解得到每个弱分类器G(x)和它的权重α,进而得到最终的分类器,实现计算模型准确率,最后将预测的分类结果可视化。
本章掌握的技能是:1、使用os库改变工作目录。2、使用pandas库读取数据。3、使用train_test_split函数构建训练集和测试集。4、使用matplotlib库实现数据的可视化,绘制分类图。5、使用sklearn.ensemble库中的AdaBoostClassifier函数建立AdaBoost模型,进行模型拟合,计算模型准确率。6、使用sklearn.model_selection中的GridSearchCV函数对AdaBoost参数中的最大迭代次数进行自动调参。
13 AdaBoost算法
13.1 本章工作任务
采用AdaBoost分类算法编写程序,根据600名学生的英语成绩和数学成绩进行分类,将其划分为文科生、理科生和综合生。1、算法的输入是:600名学生的英语成绩和数学成绩以及正确的学生分类信息(文科生、理科生和综合生)数据。2、算法模型需要求解的是:每个弱分类器和分类器的权值。3、算法的结果是:根据学生的成绩预测的分类结果。
13.2 本章技能目标
掌握AdaBoost算法原理。
使用Python读取数据并划分为训练集和测试集。
使用Python实现AdaBoost算法模型的建模与优化。
使用Python实现AdaBoost算法模型的计算与预测。
使用Python对AdaBoost算法模型结果进行可视化展示。
13.3 本章简介
AdaBoost算法是:一种集成算法,其核心思想是针对同一个训练集反复学习得到一系列弱分类器(子分类器),每个弱分类器都具有分类能力,但是对最终的分类结果的影响力不同(权值不同),每个弱分类器通过加权后得到强分类器(总分类器)。它的特点是:在每一次迭代时,被弱分类器错误分类的样本权值会增大,正确分类的样本权值会减少,权值变更后的样本用来训练下一个弱分类器。
弱分类器(子分类器)是指:每次训练迭代过程中所产生的分类器。
强分类器(总分类器)是指:由多个弱分类器的分类结果进行加权计算,得到最终分类器(输出最终分类结果)。
AdaBoost分类算法可以解决的实际应用问题是:根据已知的样本特征值(学生成绩)和其对应的标签值(学生类别)找到样本属性值和标签值的关系,从而对于任意 K 个新的样本(学生),都可以利用该样本所具有的属性值推算出该样本所属的类别。
本章的重点是:AdaBoost算法的理解和使用。
13.4 编程实战
步骤1 导入NumPy包,将其命名为np,导入os包,导入pandas包,将其命名为pd。