[学习笔记]---决策树算法(待编辑)
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
决策树算法的优缺点:决策树的主要优势就在于数据形式非常容易理解, 计算复杂度不高,对中间值的缺失不敏感,可以不处理相关特征数据。
缺点:可能会产生过匹配问题。
基本术语
正方形代表判断模块(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
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法
- 初识机器学习算法有哪些?
- 机器学习相关的库和工具
- 10个关于人工智能和机器学习的有趣开源项目
- 机器学习实践中应避免的7种常见错误
- 机器学习常见的算法面试题总结
- 不平衡数据处理技术——RUSBoost