美文网首页
bagging算法

bagging算法

作者: DouMarK | 来源:发表于2019-01-13 04:19 被阅读48次

    bagging算法:从原始数据中随机抽取n个样本,重复s次,于是就有个s个训练集,每个训练集都可以训练出一个分类器,最终生成s个分类器,预测结果将有这些分类器投票决定(选择分类器投票结果中最多的类别作为最后预测结果)。代表的有随机森林。

    bagging算法概念

    输入为样本集D={(x,y1),(x2,y2),...(xm,ym )} ,弱学习器算法, 弱分类器迭代次数T。
    输出为最终的强分类器f(x)
    对于t=1,2...,T:
    a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dm
    b)用采样集Dm训练第m个弱学习器Gm(x)

    如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

    简单的投票方法

    (1): 一票否决
    计算RMSE(AUC),RMSE最小的话(AUC最大的话),使用该方法树
    (2): 少数服从多数(可以加权)

    (3): 阈值表决

    加权平均法

    bagging算法代表:随机森林

    什么是随机森林?

    随机森林是一种多功能的机器学习算法,能够执行回归和分类的任务。同时,它也是一种数据降维手段,用于处理缺失值、异常值以及其他数据探索中的重要步骤,并取得了不错的成效。另外,它还担任了集成学习中的重要方法,在将几个低效模型整合为一个高效模型时大显身手。
    在随机森林中,我们将生成很多的决策树,并不像在CART模型里一样只生成唯一的树。当在基于某些属性对一个新的对象进行分类判别时,随机森林中的每一棵树都会给出自己的分类选择,并由此进行“投票”,森林整体的输出结果将会是票数最多的分类选项;而在回归问题中,随机森林的输出将会是所有决策树输出的平均值。
    代码实现:

    from sklearn.ensemble import RandomForestClassifier
    
    # 建立随机森林分类器
    random_forest = RandomForestClassifier(n_estimators = 100, random_state = 50, verbose = 1, n_jobs = -1)
    #n_estimators : 指森林中树的个数
    #n_jobs : 拟合(fit)和预测(predict)时并行运行的job数目,当设置为-1时,job数被设置为核心(core)数。
    #  训练数据集
    random_forest.fit(train, train_labels)
    #verbose :冗余控制 控制树增长过程中的冗余(verbosity)。​
    # 提取重要特征
    feature_importance_values = random_forest.feature_importances_
    feature_importances = pd.DataFrame({'feature': features, 'importance': feature_importance_values})
    
    # 对测试数据进行预测
    predictions = random_forest.predict_proba(test)[:, 1]
    

    码云地址:https://gitee.com/ZHBIT-MachineLearning/Machine-Learning-Base/tree/master/Adboost%20Bagging

    相关文章

      网友评论

          本文标题:bagging算法

          本文链接:https://www.haomeiwen.com/subject/onqkdqtx.html