sklearn--决策树和基于决策树的集成模型
一.决策树
决策树一般以选择属性的方式不同分为id3(信息增益),c4.5(信息增益率),CART(基尼系数),只能进行线性的分割,是一种贪婪的算法,其中sklearn中的决策树分为回归树和分类树两种,默认的是CART的决策树,下面介绍CART决策树
分支条件:二分类问题(只用来构建二叉树)
分支方法:对于连续特征的情况:比较阈值,高于某个阈值就属于某一类,低于某个阈值属于另一类。对于离散特征:抽取子特征,比如颜值这个特征,有帅、丑、中等三个水平,可以先分为帅和不帅的,不帅的里面再分成丑和中等的。
得分函数(y):分类树基尼系数的最小值得特征或是最终的叶节点分类结果,对于回归树取得是均值。
损失函数:其实这里的损失函数,就是分类的准则,也就是求最优化的准则
对于分类树(目标变量为离散变量):同一层所有分支假设函数的基尼系数的平均。
对于回归树(目标变量为连续变量):同一层所有分支假设函数的平方差损失
在二维空间(只有一个特征)其实对于回归树来说就是一个通过建立一个分段的平行线函数(一块接近的数据用他们的均值来代替)来逼近最后的目标值,而想通过这种方式来要得到要设置树的深度,但是书的深度很深的话就会使得模型有过拟合的风险
from sklearn.tree import DecisionTreeRegressor
from sklearn.tree import DecisionTreeClassifier
regr_2 = DecisionTreeRegressor(max_depth=5)
regr_1 = DecisionTreeClassifierr(max_depth=5)
regr_2.fit(X, y)
regr_1.fit(X, y)
二.随机森林
我们通过随机的抽取部分样本,抽取部分的特征,来训练多颗决策树,然后通过投票表决的方式来决定最终的分类(这是分类问题,若是回归问题则是取最后结果的均值)在森林中每一棵树都有平等的发言权,这种随机深林是基于bagging的集成学习的方法,极大可能的过滤掉特征的误差和样本可能存在的误差.这里我们要注意的是:如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的,随机森林分类效果(错误率)与两个因素有关:
- 森林中任意两棵树的相关性:相关性越大,错误率越大;
- 森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。
减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。
我们可以通过oob来衡量随机森林的好坏
from sklearn.ensemble import RandomForestClassifier
rf0 = RandomForestClassifier(oob_score=True, random_state=10)
rf0.fit(X,y)
print rf0.oob_score_
三.adaboost+决策树
自适应boost,思想是每一次选取误差最小的模型,然后将错误的值权值加重,输入给下一个模型,如果错误率越高其相应的模型权值就会变低
#设定弱分类器CART
weakClassifier=DecisionTreeClassifier(max_depth=1) #构建模型。
clf=AdaBoostClassifier(base_estimator=weakClassifier,algorithm='SAMME',n_estimators=300,learning_rate=0.8)
clf.fit(X, y)
四.GBDT(梯度提升决策树)
https://blog.csdn.net/qq_22238533/article/details/79199605 gbdt的一些讲解,
五.XGBOOST
sklearn--决策树和基于决策树的集成模型的更多相关文章
- 决策树和基于决策树的集成方法(DT,RF,GBDT,XGBT)复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-the ...
- 决策树和基于决策树的集成方法(DT,RF,GBDT,XGB)复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-the ...
- Python机器学习(基础篇---监督学习(集成模型))
集成模型 集成分类模型是综合考量多个分类器的预测结果,从而做出决策. 综合考量的方式大体分为两种: 1.利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的 ...
- 『Kaggle』分类任务_决策树&集成模型&DataFrame向量化操作
决策树这节中涉及到了很多pandas中的新的函数用法等,所以我单拿出来详细的理解一下这些pandas处理过程,进一步理解pandas背后的数据处理的手段原理. 决策树程序 数据载入 pd.read_c ...
- 用Sklearn画一颗决策树
小伙伴们大家好~o( ̄▽ ̄)ブ,首先声明一下,我的开发环境是Jupyter lab,所用的库和版本大家参考: Python 3.7.1(你的版本至少要3.4以上 Scikit-learn 0.20.0 ...
- [Machine Learning & Algorithm] 决策树与迭代决策树(GBDT)
谈完数据结构中的树(详情见参照之前博文<数据结构中各种树>),我们来谈一谈机器学习算法中的各种树形算法,包括ID3.C4.5.CART以及基于集成思想的树模型Random Forest和G ...
- 【集成模型】Bootstrap Aggregating(Bagging)
0 - 思想 如下图所示,Bagging(Bootstrap Aggregating)的基本思想是,从训练数据集中有返回的抽象m次形成m个子数据集(bootstrapping),对于每一个子数据集训练 ...
- DeepMind提出空间语言集成模型SLIM,有效编码自然语言的空间关系
前不久,DeepMind 提出生成查询网络 GQN,具备从 2D 画面到 3D 空间的转换能力.近日.DeepMind 基于 GQN 提出一种新模型.可以捕捉空间关系的语义(如 behind.left ...
- .NET - 基于事件的异步模型
注:这是大概四年前写的文章了.而且我离开.net领域也有四年多了.本来不想再发表,但是这实际上是Active Object模式在.net中的一种重要实现方法,因此我把它掏出来发布一下.如果该模型有新的 ...
随机推荐
- 一个小故事,玩转Python-while循环
无论是传统编程场景还是当下火爆的人工智能应用场景,循环的应用都是必不可少的,上一篇文章中阐述了如何使用for循环来进行编程,这篇文章将会由一个小朋友经常听的故事来讲Python编程中的while循环. ...
- 在VMware上部署MOS(MirantisOpenStack-6.0)搭建全过程
安装清单 MOS9.0系统镜像 1 MirantisOpenStack-6.0.iso ****首先创建3个仅主机模式网卡, 禁用DHCP,分别配置ip为 /10.20.0.0 /172.16.0.0 ...
- 【VS开发】C/C++预编译命令
C/C++中宏总结C程序的源代码中可包括各种编译指令,这些指令称为预处理命令或预处理器.虽然它们实际上不是C语言的一部分,但却扩展了C程 序设计的环境. 预处理指令的主要作用就是把通过预处理的内建功能 ...
- Spring 视图层如何显示验证消息提示
1.示例 <p th:if="${#fields.hasErrors('name')}" th:errors="*{name}" ></p&g ...
- 巧用 Class Extension 隐藏属性
一般来说,Extension用来给Class增加私有属性和方法,写在 Class 的.m文件.但是Extension不是必须要写在.m文件,你可以写在任何地方,只要在 @implementation ...
- [CF1010D]Mars Over_位运算性质
Mars rover 题目链接:http://codeforces.com/problemset/problem/1010/D 数据范围:略. 题解: 因为每次只改一个,改完之后改回去,这个性质很重要 ...
- kettle下载地址
kettle 4.4和4.2 版本是好的,版本6.6和8.2 版本有bug Kettle下载和安装: 1.官网各个版本下载地址:https://sourceforge.net/projects/pen ...
- Netty源码剖析-接受数据
参考文献:极客时间傅健老师的<Netty源码剖析与实战>Talk is cheap.show me the code! ----主线:worker thread ①多路复用器(Select ...
- 使用JavaScript随机生成数字混合字母的验证码
<script> // 封装一个随机生成数字的函数 function random(a, b) { var n = Math.round(Math.random() * (a - b) ...
- Exchanging Gifts--2019CCPC哈尔滨 E题
题意:http://codeforces.com/gym/102394/problem/E 1操作是给你一串数,2操作是连结两个串(所以可能很长),问你最后一个串的值(知道最多的个数就很好算,关键计算 ...