机器学习->监督学习->分类学习->决策树
通过一个约会吃饭的例子,说明决策树。输入是饭店的特征,输出是是否进去吃饭。
输入即那些会影响输出的属性,比如饭店的类型,氛围,客人多少,约会对象如何,费用,天气,饿不饿,等等, 使用相关的属性,即特征来引导生成决策树
圆圈:
决策节点,该节点为一个属性(Attribute),提出有关该属性的问题。每个节点只能有一个属性
边:
决策节点代表属性的问题的值,每个节点可以有多个值
方框:
最终的输出
我们可以通过决策树提出一系列问题,并根据这些问题的答案顺树枝向下移动,直到获得最终的输出。决策树的使用方式总是从根部开始,即树的最顶端,依次问问题。
如何从诸多类型的决策树中,选择这一个特定的决策树?(后面有讲)
20个问题:
我们通过一个20 questions的游戏来演示决策过程(参考美剧中该游戏的玩法)。该游戏中提问的目的是为了缩小可能性的范围。
1. 挑选最佳的属性。何为最佳?(后面有讲)
2. 问问题
3.顺着问题的路径下延
4.go to 1.
直到得到正确的答案
机器学习->监督学习->分类学习->决策树->运算
A and B:
A,B可以交换
A or B:
A,B可以交换
A xor B:
A为T或B为T时,结果为T.
A为T且B为T时,结果为F.
你想去游泳还是看电影?这其实是一个xor问题,因为你不可能同时做这两样。
n-or:
需n个节点
n-xor:
在奇校验时,若T为奇数则输出为T
n-xor需要2^n-1个节点。O(2^N). xor问题是指数问题,是邪恶的!
机器学习->监督学习->分类学习->决策树->规模
为了找到合适的决策树,我们要检查所有可能的决策树,那么我们需要考虑多少种决策树?
假设该决策树有n个属性,每个属性都是boolean类型,输出也是boolean的。
问题就是:有多少种可能的树的形状?
先看看n个属性有多少可能的组合:
总共有2^N行。由于输出是boolean,因此,该真值表有2^2^N种填法,也即有2^2^N个决策树。
当n=6 时,会有:1.844674407×10¹⁹种决策树。
因此需要一个NB 的算法对这些决策树进行检查和选择。