您的位置:首页 > 其它

[学习笔记]---决策树算法(待编辑)

2016-06-26 00:06 183 查看
简介:

决策树算法的优缺点:决策树的主要优势就在于数据形式非常容易理解, 计算复杂度不高,对中间值的缺失不敏感,可以不处理相关特征数据。

缺点:可能会产生过匹配问题。

基本术语

正方形代表判断模块(decision block),椭圆形代表终止模块(termnation block),表示已经得出结论,可以终止运行。从判断模块引出的左右箭头称作分支(branch),它可以到达另一个判断模块或者终止模块。

流程(翻译于wiki ID3)

(1) Calculate the entropy of every attribute using the data set S

计算数据集S每个属性的熵(或者信息增益)

(2) Split the set S into subsets using the attribute for which entropy is minimum (or, equivalently, information gain is maximum)

根据最小熵的属性(或者信息增益最大的属性)将数据集分成子集。

(3) Make a decision tree node containing that attribute

根据该属性生成判断节点。

(4) Recurse on subsets using remaining attributes.

对于子集循环该过程,直到归类到叶子节点。

entroy熵值计算,IG(信息增益)计算



式中:s为当前数据集,随着算法的迭代而改变

X - s中的集合,

p(X), x出现的概率。



Gini impority 基尼不纯度

算法分类:

ID3:

ID3 (Iterative Dichotomiser 3),基于奥姆剃刀理论的一种算法,越是小型的决策树优于大型的决策树。但是生成的决策树并不是最小决策树(why),而是一种启发算法。

算法流程:

对于集合S,先计算对应属性的信息素熵H(s)/信息增益IS(s),选择最优的属性进行划分,然后迭代直到生成决策树。

终止条件:

1). 子集中的每一个元素属于同一个类,生成一个叶子节点,添加标签

2). 属性用完了,没有属性可选了,但是还没能完全分类,采用投票的方式少数服从多数。

3). 例子用完了,以该节点创建一个叶子节点。属性是 父节点的属性(wiki没看懂)

算法缺点:

ID3 不能保证是最优解—其采用的是贪婪算法,有可能是局部最优,可以采用backtracking(什么鬼,不懂)对其过程进行优化;过拟合—所以树要尽可能小,但是该方法生成的不一定是最小树; 对连续数据—拆分数据的点太多,search过程很耗时不可取。

C4.5

C4.5算法是ID3的升华

算法优缺点:

离散、连续数据都可以处理,为处理连续数据,创建一个阈值。小于该阈值的是一类,大于等于该阈值的是一类。

对于训练数据没有属性值的,可以用?代替,代表属性值丢失。不进行计算。

Handling attributes with differing costs. 百度说是:处理具有不同成本的属性。具体细节不知道,待勘误处理。

创建好之后进行剪枝处理。移除无用的分支,用叶子节点代替。

CART

应用实例

7.参考文献:

https://en.wikipedia.org/wiki/Decision_tree_learning

https://en.wikipedia.org/wiki/ID3_algorithm

https://en.wikipedia.org/wiki/C4.5_algorithm

http://blog.csdn.net/acdreamers/article/details/44661149

http://www.onlamp.com/pub/a/python/2006/02/09/ai_decision_trees.html?page=1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习