机器学习入门-集成算法(bagging, boosting, stacking)

目的:为了让训练效果更好

bagging:是一种并行的算法,训练多个分类器,取最终结果的平均值 f(x) = 1/M∑fm(x)

boosting: 是一种串行的算法,根据前一次的结果,进行加权来提高训练效果

stacking; 是一种堆叠算法,第一步使用多个算法求出结果,再将结果作为特征输入到下一个算法中训练出最终的预测结果

1.Bagging:全程boostap aggregation(说白了是并行训练一堆分类器)

最典型的算法就是随机森林

随机森林的意思就是特征随机抽取,即每一棵数使用60%的随机特征,数据随机抽取,即每一棵树使用的数据是60%-80%,这样做的目的是为了保证每一棵树的结果在输出是都存在差异。最后对输出的结果求平均

随机森林的优势
               它能处理很高维度的数据,不需要进行特征选择

在训练后他能给出哪些特征的重要性,根据重要性我们也可以进行特征选择

特征重要性的计算方法:如果有特征是A,B,C,D 根据这4个特征求得当前的error,然后对B特征采用随机给定记为B*,对A,B*,C,D求error1,

如果error == error1 ,说明B特征不重要

如果error < error1 说明B特征的重要性很大

当随机森林树的个数超过一定数量后,就会上下浮动

2.Boosting: 是一种串行的算法,通过弱学习器开始加强,通过加权来训练

Fm(x) = Fm-1(x) + argmin(∑L(yi, Fm-1(x) + h(xi) ))   通过前一次的输出结果与目标的残差值,来训练下一颗树的结果(XGboost)

这里介绍一种Adaboost(双加权)

Adaboost 每一次使用一棵树,根据前一颗树的输出结果,来对数据进行加权,比如有5个数据,刚开始的权重都为0.2, 其中第3个数据被判错了,那么第3个数据的权重就为0.6,将经过加权后的数据输入到下一颗树中,再进行训练

根据每一棵树的准确率,再进行权重加权,获得最终的输出结果

对于数据的权重加和

3.Stacking : 聚合多个分类或回归模型

堆叠,拿来一堆直接上

可以堆叠各种各样的分类器(KNN, SVM, RF)

分阶段进行,第一个阶段可以使用多个分类器获得分类结果,第二阶段将分类结果作为特征输入到一个分类器中,得到最终的结果,缺点就是耗时

第一阶段                                  第二阶段

RF      ----- 0 1 0 1 --作为特征--输出结果

LR     ------ 1 0 1 0  -----LR-------1 0 1 0

DT     -------1 1 0 1     训练模型

xgboost---- 1 1 0 1

原文地址:https://www.cnblogs.com/my-love-is-python/p/10281709.html

时间: 2024-11-06 03:31:16

机器学习入门-集成算法(bagging, boosting, stacking)的相关文章

Bagging,Boosting,Stacking

本文主要总结Bagging 和 Boosting 和 Stacking思想的异同点.这三种算法都可以称作为"meta-algorithms",就是将多个机器学习方法集成到一个模型里面去降低方差,偏差,或者改善模型预测能力.通常bagging可以降低variance,boosting可以降低bias,stacking可以改善模型预测能力. 这三种算法都包含以下两个步骤: 在原始数据的子集样例上产生一个简单的ML模型分布. 将这个分布的模型集成到一个模型当中. 在多分类问题当中,常用到两大

机器学习:集成算法 - xgboost

xgboost(eXtreme Gradient Boosting) 大规模并行 boosting tree 的工具,据说是现在最好用的 boosting 算法,针对传统 GBDT 算法做了很多改进 xgboost 和传统 GBDT 的区别 GBDT 基学习器只用 CART 树,而 xgboost 除了用 CART 树,还可以用其他分类器 优化目标函数里,用到了二阶导数信息,能够更快地收敛,而普通的 GBDT 只用到一阶 优化目标函数里,对衡量模型复杂度的正则项进行了改进,GBDT 只对叶子个数

机器学习入门-K-means算法

无监督问题,我们手里没有标签 聚类:相似的东西聚在一起 难点:如何进行调参 K-means算法 需要制定k值,用来获得到底有几个簇,即几种类型 质心:均值,即向量各维取平均值 距离的度量: 欧式距离和余弦相似度 优化目标: min∑∑dist(ci, xi)   即每种类别的数据到该类别质心距离的之和最小 1-k x 根据上述的工作流程: 第一步:随机选择两个初始点,类别的质心点(图二) 第二步: 根据所选的质心点,根据欧式距离对数据进行分类(图三) 第三步:求得分类后的每个类别的质心(图四)

机器学习入门-线性回归算法(原理)

数据:工资和年龄(2个特征) 目标:预测银行会贷款多少钱(标签) 考虑: 工资和年龄影响银行贷款,它们各自的影响大小(参数) x1, x2 表示的是两个特征(年龄, 工资) y 是银行最终会借我们多少钱 找到一条最合适线(一些高维点)来最好拟合我们的数据点 假设theta1是年龄的参数, theta2是工资的参数 h0 = theta0 + theta1 * x1 + theta2 * x2  # 目标函数np.dot(X, theta.T) y = h0 + error  # 真实值与预测值的

集成学习算法总结----Boosting和Bagging(转)

1.集成学习概述 1.1 集成学习概述 集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高.目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代表算法有Adaboost.GBDT.XGBOOST.后者的代表算法主要是随机森林. 1.2 集成学习的主要思想 集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合公共预测.核心思想就是如何训练处多个弱分类器以及如何将这些

集成学习算法总结----Boosting和Bagging

1.集成学习概述 1.1 集成学习概述 集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高.目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代表算法有Adaboost.GBDT.XGBOOST.后者的代表算法主要是随机森林. 1.2 集成学习的主要思想 集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合公共预测.核心思想就是如何训练处多个弱分类器以及如何将这些

web安全之机器学习入门——3.1 KNN/k近邻算法

目录 sklearn.neighbors.NearestNeighbors 参数/方法 基础用法 用于监督学习 检测异常操作(一) 检测异常操作(二) 检测rootkit 检测webshell sklearn.neighbors.NearestNeighbors 参数: 方法: 基础用法 print(__doc__) from sklearn.neighbors import NearestNeighbors import numpy as np X = np.array([[-1, -1],

【机器学习】机器学习入门08 - 聚类与聚类算法K-Means

时间过得很快,这篇文章已经是机器学习入门系列的最后一篇了.短短八周的时间里,虽然对机器学习并没有太多应用和熟悉的机会,但对于机器学习一些基本概念已经差不多有了一个提纲挈领的了解,如分类和回归,损失函数,以及一些简单的算法--kNN算法.决策树算法等. 那么,今天就用聚类和K-Means算法来结束我们这段机器学习之旅. 1. 聚类 1.1 什么是聚类 将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他

机器学习之集成学习(一)

详细参考:https://www.cnblogs.com/pinard/p/6131423.html 首先明确集成学习它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务. 集成学习有两个主要的问题需要解决,第一是如何得到若干个个体学习器,第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器.对于个体学习器第一种就是所有的个体学习器都是一个种类的,或者说是同质的.比如都是决策树个体学习器,或者都是神经网络个体学习器.第二种是所有的个体学习器不全是一个种类的,