自学内容网 自学内容网

机器学习实验------Adaboost算法

第1关:什么是集成学习

任务描述

本关任务:根据本节课所学知识完成本关所设置的选择题。
在这里插入图片描述

第2关: Boosting

任务描述

本关任务:根据本节课所学知识完成本关所设置的选择题。
在这里插入图片描述

第3关:Adaboost算法流程

任务描述

本关任务:用Python实现Adaboost,并通过鸢尾花数据集中鸢尾花的2种属性与种类对Adaboost模型进行训练。我们会调用你训练好的Adaboost模型,来对未知的鸢尾花进行分类。


#encoding=utf8
 
import 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_estimators
        self.learning_rate = learning_rate
    
    def init_args(self, datasets, labels):
        
        self.X = datasets
        self.Y = labels
        self.M, self.N = datasets.shape
        
        # 弱分类器数目和集合
        self.clf_sets = []
        
        # 初始化weights
        self.weights = [1.0/self.M]*self.M
        
        # G(x)系数 alpha
        self.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
        #单维features
        features_min = min(features)
        features_max = max(features)
        n_step = (features_max-features_min+self.learning_rate) // self.learning_rate
        direct,compare_array = None,None
        for i 

原文地址:https://blog.csdn.net/m0_74459049/article/details/139186003

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!