第1关:什么是集成学习
任务描述
本关任务:根据本节课所学知识完成本关所设置的选择题。
第2关: Boosting
任务描述
本关任务:根据本节课所学知识完成本关所设置的选择题。
第3关:Adaboost算法流程
任务描述
本关任务:用Python实现Adaboost,并通过鸢尾花数据集中鸢尾花的2种属性与种类对Adaboost模型进行训练。我们会调用你训练好的Adaboost模型,来对未知的鸢尾花进行分类。
#encoding=utf8import numpy as np#adaboost算法
class AdaBoost:'''input:n_estimators(int):迭代轮数learning_rate(float):弱分类器权重缩减系数'''def __init__(self, n_estimators=50, learning_rate=1.0):self.clf_num = n_estimatorsself.learning_rate = learning_ratedef init_args(self, datasets, labels):self.X = datasetsself.Y = labelsself.M, self.N = datasets.shape# 弱分类器数目和集合self.clf_sets = []# 初始化weightsself.weights = [1.0/self.M]*self.M# G(x)系数 alphaself.alpha = [] def _G(self, features, labels, weights):'''input:features(ndarray):数据特征labels(ndarray):数据标签weights(ndarray):样本权重系数'''#********* Begin *********#m = len(features)error = 100000.0 # 无穷大beat_v = 0.0#单维featuresfeatures_min = min(features)features_max = max(features)n_step = (features_max-features_min+self.learning_rate) // self.learning_ratedirect,compare_array = None,Nonefor i