bagging与boosting集成学习、随机森林
主要内容:
一.bagging、boosting集成学习
二.随机森林
一.bagging、boosting集成学习
1.bagging:
从原始样本集中独立地进行k轮抽取,生成训练集。每轮从原始样本集中使用Bootstraping方法抽取(即又放回地抽取)n个样本点(样本集与训练集的大小同为n。在一个训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。最后得到得到k个独立的训练集,然后利用这k个训练集去训练k个分类器。将输入数据输入到这k个分类器中,得到k个结果,最后再以投票的方式(即每个分类器的权重相等)决定最后的分类。
2.boosting:
使用一个训练集,将这个训练集串行地输入到k个分类器当中。对于当前分类器(假设训练集已经在前面经过了若干个分类器),它重点关注那些之前被错误分类的样本点,做法是增大这些错分样本点的权重。在最后的决策中,与bagging不同的是:boosting中的分类器的权重并不相等,而是正确率越高的分类器其权重越大。
3.bagging与boosting的不同:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的.
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化.而权值是根据上一轮的分类结果进行调整.
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大.
3)预测函数:
Bagging:所有预测函数的权重相等.
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重.
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果.
二.随机森林
随机森林,就是bagging方法下的k棵决策树,只不过在选取分割特征的时候加入了随机性。其具体算法如下:
1)从原始训练集中使用Bootstraping方法随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集。
2)对于n_tree个训练集,分别训练n_tree个决策树模型。
3)对于单个决策树模型,假设训练样本特征的个数为n,那么每次从中随机抽取出一个大小为m(1<=m<=n)的特征子集,分裂时根据信息增益/信息增益比/基尼指数等等,在这个特征子集中选择最好的特征进行分裂。
4)每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。
5)将生成的多棵决策树组成随机森林。
bagging与boosting集成学习、随机森林的更多相关文章
- 吴裕雄 python 机器学习——集成学习随机森林RandomForestRegressor回归模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习随机森林RandomForestClassifier分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 机器学习:集成学习:随机森林.GBDT
集成学习(Ensemble Learning) 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测 ...
- 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者
python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...
- 04-10 Bagging和随机森林
目录 Bagging算法和随机森林 一.Bagging算法和随机森林学习目标 二.Bagging算法原理回顾 三.Bagging算法流程 3.1 输入 3.2 输出 3.3 流程 四.随机森林详解 4 ...
- 集成学习二: Boosting
目录 集成学习二: Boosting 引言 Adaboost Adaboost 算法 前向分步算法 前向分步算法 Boosting Tree 回归树 提升回归树 Gradient Boosting 参 ...
- 集成学习之Boosting —— XGBoost
集成学习之Boosting -- AdaBoost 集成学习之Boosting -- Gradient Boosting 集成学习之Boosting -- XGBoost Gradient Boost ...
- 机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。
决策树decision tree 什么是决策树输入:学习集输出:分类觃则(决策树) 决策树算法概述 70年代后期至80年代初期,Quinlan开发了ID3算法(迭代的二分器)Quinlan改迚了ID3 ...
- 【小白学AI】随机森林 全解 (从bagging到variance)
文章转自公众号[机器学习炼丹术],关注回复"炼丹"即可获得海量免费学习资料哦! 目录 1 随机森林 2 bagging 3 神秘的63.2% 4 随机森林 vs bagging 5 ...
随机推荐
- MySQL5.5中文支持
1. /etc/my.cnf.d/client.cnf [client] #password = [your_password] port = 3306 socket = /tmp/mysql.soc ...
- zabbix根据graph name 做screen
下面亲测可用 #!/usr/bin/env python #coding:utf8 import urllib2 import sys import json import argparse #定义通 ...
- 第九章 用多线程来读取epoll模型下的client数据
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include &l ...
- Python基础之初识递归
初识递归 递归的定义: 在一个函数里再调用这个函数本身,这种魔性的使用函数的方式就叫做递归. 递归的最大深度--997 递归函数不受外力的阻止会一直执行下去,python为了杜绝此类现象,强制将递归层 ...
- 常见的C++数学计算库
来源: https://blog.csdn.net/panhao762/article/details/55276811 作为理工科学生,想必有限元分析.数值计算.三维建模.信号处理.性能分析.仿真分 ...
- MySQL中in(常量列表)的执行计划
我们在写sql的时候,经常用到in,in后面跟一堆常量列表,如id.有人说in的效率很高,而有人说很低:有人说in能使用索引,还有人说in不能使用索引... 到底是一个怎样的情况呢?我们分析以下几种情 ...
- JavaScript的split()
JavaScript split() 方法 JavaScript String 对象 定义和用法 split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.split(s ...
- Word 操作
1.出文件,最后一页是附件.最后一页的页码不想要.如何删除?用的是 office word 2010版本,跟07 03版本界面不一样. 在最后一页的最前面插入分节符:下一页 ,编辑页脚.让页脚“取消链 ...
- 【LeetCode-面试算法经典-Java实现】【114-Flatten Binary Tree to Linked List(二叉树转单链表)】
[114-Flatten Binary Tree to Linked List(二叉树转单链表)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a bin ...
- php 在linux 用file_exists() 函数判断 另外一台服务器映射过来的文件是否存在 总是返回false
php 在linux 用file_exists() 函数判断 另外一台服务器映射过来的文件是否存在 总是返回false .如下案例 $type="android"; $url=&q ...