机器学习技法总结(六)Decision Tree Hypothesis
这里先再次提出我们利用aggregation获取更好性能的Hypothesis G所涉及的方法:blending,就是在得到g_set之后进行融合;learning呢?就是在线online的获取g并融合。以下就是关于整个aggregation所涉及到的方法总结:
当中Bagging、AdaBoost我们都已经探讨。它们各自是基于uniform(voting / average)和non-uniform(linear)的aggregation type,那么以下就開始介绍一个基于conditional的learning model:decision tree(决策树)。
它实际上是模仿人类的决策过程。在C语言中很常见的if...else...语句就能够看作是很easy的decision tree。看我们怎样利用aggregation进行演进,例如以下图,我们希望internal nodes(内部的决策过程)都要很easy。从入口处将状况进行分开为不同的branch,Gc(x)作为一个独立的Sub-Tree。就是把一颗大Tree。配合上分支条件,分拆为小点的树,实际上就是一个递归结构的定义。tree = (root, sub-trees),root根部告诉我们怎样做branch。
另外对于Decision Tree有些优点和坏处,这里先给出。有一个大致的定位,例如以下图:
那么一个主要的decision tree演算法就应该例如以下:(採用递归的结构)。全部的资料送入作出一个大的树,root。sub-tree,然后再对sub-tree进行分解,一直到sub-tree不能再分。就是碰到了叶子(leaf)后就逐级回传,最后合成大的decision tree。
一个典型的决策树:C&RT:classification and Regression Tree。1)将branch分支为2元树(binary tree)。2)leaf级的hypothesis是g = Ein-optimal constant (常数)。3)内部节点:就直接用decision stump;4)利用全部可能的decision stump来计算其纯度(purity),最大的purity作为终于的decision
stump(branching by purifying)
那么纯度的衡量都有哪些呢?
那么演算法什么时候停止呢?到全部的purity=1时。能够回传一个常数了;或者是全部的xn都一样时。也就说没有了decision stump了。
这样的是叫作强制停止。有个特点:叶子回传的是一个常数。
所以,主要的C&RT算法例如以下。能够非常easy做多类分类。
假设我们将树叶覆盖全部的数据,那么Ein非常有可能就变成0了,这样我们非常可能出现overfitting的现象。那又该如何做呢?对。 regularization!:让叶子节点变得少,就有可能控制模型复杂度。可是我们找全部可能的 tree,这有可能非常多。计算量比較大,那么假设我们利用C&RT得到一个fully-grown tree之后。比方是10个叶子,我们能够依次去掉一片叶子来得到10个砍掉的树,这样来进行Regularization可能是实用的。
如何选择lambda呢?
先讨论一下decision stump的输入特征都有哪些种,这将决定我们怎样利用decision stump进行分割。假设是数字特征,那么非常easy就是简单的decision stump,那么假设特征是categorical features时,能够利用decision subset进行处理。所以C&RT都能够处理。
假设有些特征丢失了,该怎么办呢?我们假设类比人的方法:就是类比。就是说,比方人的身高与体重有一定的关系,weight<50 == height < 150,就这样用替代的特征进行;所以C&RT可以处理丢失的特征;
最后举出一些样例来更加形象的了解Decision Tree这个模型的工作机制,跟AdaBoost-decision stump中的解说类似,相同先从简单的样例入手:
就是逐渐的递归地把树给展开。那么与AdaBoost有和区别呢?
能够非常清楚的看到,Decision Tree是一种有condition的分割,而AdaBoost则是全平面的分割,这样相比着decision tree就会有更加细腻的边界线,可是相比着AdaBoost VC bound的理论上的upper bound的限制,decision tree则没有那么多的理论上的解释,所以须要显式的regularization,而AdaBoost则不须要。
那么再看在复杂样本上的表现吧:
C&RT方法的特点例如以下总结。
不同的decision tree的演算法不同之处可能就是在于怎样regularization即怎样砍树叶子(pruning)。或者某些点上的处理不同而已。
以下可能要做的就是把C&RT算法基于上面的样例进行实现。并于AdaBoost-stump进行对照,以加深对Decision Tree的理论上的理解。
*****************************************************随时学习。随时分享******************************************************
机器学习技法总结(六)Decision Tree Hypothesis的更多相关文章
- 机器学习技法:09 Decision Tree
Roadmap Decision Tree Hypothesis Decision Tree Algorithm Decision Tree Heuristics in C&RT Decisi ...
- 【机器学习】决策树(Decision Tree) 学习笔记
[机器学习]决策树(decision tree) 学习笔记 标签(空格分隔): 机器学习 决策树简介 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).其每个非叶节点表示一个 ...
- Coursera台大机器学习技法课程笔记09-Decision Tree
这是我们已经学到的(除Decision Tree外) 下面是一个典型的decision tree算法,有四个地方需要我们选择: 接着介绍了一个CART算法:通过decision stump分成两类,衡 ...
- Python机器学习算法 — 决策树(Decision Tree)
决策树 -- 简介 决策树(decision tree)一般都是自上而下的来生成的.每个决策或事件(即自然状态)都可能引出两个或多个事件,导致不同的结果,把这种决策分支画成图形很像一棵 ...
- 机器学习技法笔记:09 Decision Tree
Roadmap Decision Tree Hypothesis Decision Tree Algorithm Decision Tree Heuristics in C&RT Decisi ...
- 机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation
本文主要基于台大林轩田老师的机器学习技法课程中关于使用融合(aggregation)方法获得更好性能的g的一个总结.包含从静态的融合方法blending(已经有了一堆的g,通过uniform:voti ...
- 【Decision Tree】林轩田机器学习技法
首先沿着上节课的AdaBoost-Stump的思路,介绍了Decision Tree的路数: AdaBoost和Decision Tree都是对弱分类器的组合: 1)AdaBoost是分类的时候,让所 ...
- 机器学习技法:11 Gradient Boosted Decision Tree
Roadmap Adaptive Boosted Decision Tree Optimization View of AdaBoost Gradient Boosting Summary of Ag ...
- 机器学习技法笔记:11 Gradient Boosted Decision Tree
Roadmap Adaptive Boosted Decision Tree Optimization View of AdaBoost Gradient Boosting Summary of Ag ...
随机推荐
- ACM Changchun 2015 A. Too Rich
You are a rich person, and you think your wallet is too heavy and full now. So you want to give me s ...
- Django之单表的增删改查
books/urls.py """books URL Configuration The `urlpatterns` list routes URLs to vi ...
- 利用Node.js调用Elasticsearch
1. 下载elasticsearch库 npm install elasticsearch --save 2.在脚本里导入模块,如下所示 const elasticsearch = require(' ...
- 初识LiveScript
The LiveScript Book 邂逅 LiveScript 就像很多现代化的语言一样,LiveScript 使用缩进来表示语句块,使用换行取代分号来表示一个语句的结束 (如果你想要一行 ...
- 循环神经网络与LSTM网络
循环神经网络与LSTM网络 循环神经网络RNN 循环神经网络广泛地应用在序列数据上面,如自然语言,语音和其他的序列数据上.序列数据是有很强的次序关系,比如自然语言.通过深度学习关于序列数据的算法要比两 ...
- hdu_2092_整数解
枚举 #include <iostream> #include <cstdio> #include <cmath> using namespace std; int ...
- .netCore例子
.netCore例子 文章:https://github.com/dotnet-architecture/eShopOnContainers
- HDU-1829 A Bug's Life。并查集构造,与POJ1709异曲同工!
A Bug's Life Find them, Catch them 都是并查集构造的题,不久前 ...
- 九度oj 题目1172:哈夫曼树
题目描述: 哈夫曼树,第一行输入一个数n,表示叶结点的个数.需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和. 输入: 输入有 ...
- 【bzoj2238】Mst(树链剖分+线段树)
2238: Mst Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 465 Solved: 131[Submit][Status][Discuss] ...