机器学习技法总结(六)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 ...
随机推荐
- POST一个多部分编码(Multipart-Encoded)的文件
Requests使得上传多部分编码文件变得很简单: >>> url = 'http://httpbin.org/post' >>> files = {'file': ...
- mysql 与QT的连接
第一步:安装 qt开发环境 bi@bi-desktop:~$sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4- ...
- LeetCode(150) Evaluate Reverse Polish Notation
题目 Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, ...
- apk 解包 打包
APK应用程序的解包.修改.编辑.汉化.打包及应用 前两讲主要讲玩机的最基本的知识,集中在如何刷机.本讲是进级的内容,来谈谈与apk应用程序有关的知识,内容包括akp文件的解包.打包.反编辑.解析.汉 ...
- ER模型图工具:PowerDesigner
导读:开始是想一个阶段一个阶段的写文档,再写了可行性分析报告之后,发现这种方法整体性不强,写出来的文档也总是有考虑不周的地方.后来,就看完了全部的软工视频再写.现在该写项目开发总结报告了.在写文档的过 ...
- 【JavaScript 14—学习总结】:从小事做起
导读:花了将近两个月,JavaScript的学习视频算是做完了.里面的例子,都敲过一遍,但有少数的几个就是实现不了,比如:百度分享侧栏随着滚动条移动:菜单切换只对第一个起作用等,也就先放着了.现在,就 ...
- hdu 4764 巴什博弈
Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 【Luogu】P1972HH的项链(链表+树状数组)
题目链接 难题,所以会讲得细一些. 首先我们想如何统计区间[l,r]内不同贝壳的个数. 第一个思路就是线段树/树状数组,query(1,r)-query(1,l-1)对不对? 然而这样是不对的. 然后 ...
- 【2018.11.8】小迟的比赛 / Yuno like cake / 格子填数
题目 $noip$ 欢乐赛真是欢乐,除了不欢乐的方面以外我都很欢乐. T1 鸡汤题目,故意输对后面的胜率又没有影响,为什么要故意输呢? 所以第二个决策是凑字用的,这题就是朴素递推概率,最后乘结果权值计 ...
- vector容器中添加和删除元素
添加元素: 方法一: insert() 插入元素到Vector中 iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入 ...