机器学习ID3决策树算法(附matlab/octave代码)依封剑白

ID3决策树算法是基于信息增益来构建的,信息增益可以由训练集的信息熵算得,这里举一个简单的例子

data=[心情好天气好出门

心情好天气不好出门

心情不好天气好出门

心情不好天气不好不出门]

前面两列是分类属性,最后一列是分类

分类的信息熵可以计算得到:出门=3,不出门=1,总行数=4分类信息熵=-(3/4)*log2(3/4)-(1/4)*log2(1/4)

第一列属性有两类,心情好,心情不好

心情好,出门=2,不出门=0,行数=2

心情好信息熵=-(2/2)*log2(2/2)+(0/2)*log2(0/2)

同理

心情不好信息熵=-(1/2)*log2(1/2)-(1/2)*log2(1/2)

心情的信息增益=分类信息熵-心情好的概率*心情好的信息熵-心情不好的概率*心情不好的信息熵

由此可以得到每个属性对应的信息熵,信息熵最大的即为最优划分属性。

还是这个例子,加入最优划分属性为心情

然后分别在心情属性的每个具体情况下的分类是否全部为同一种,若为同一种则该节点标记为此类别,

这里我们在心情好的情况下不管什么天气结果都是出门所以,有了

心情不好的情况下有不同的分类结果,继续计算在心情不好的情况下,其它属性的信息增益,

把信息增益最大的属性作为这个分支节点,这个我们只有天气这个属性,那么这个节点就是天气了,

天气属性有两种情况,如下图

在心情不好并且天气好的情况下,若分类全为同一种,则改节点标记为此类别

有训练集可以,心情不好并且天气好为出门,心情不好并且天气不好为不出门,结果入下图

对于分支节点下的属性很有可能没有数据,比如,我们假设训练集变成

data=[心情好晴天出门

心情好阴天出门

心情好雨天出门

心情好雾天出门

心情不好晴天出门

心情不好雨天不出门

心情不好阴天不出门]

如下图:

在心情不好的情况下,天气中并没有雾天,我们如何判断雾天到底是否出门呢?我们可以采用该样本最多的分类作为该分类,这里天气不好的情况下,我们出门=1,不出门=2,那么这里将不出门,作为雾天的分类结果

在此我们所有属性都划分了,结束递归,我们得到了一颗非常简单的决策树。

下面附上我的实现ID3决策树算法代码:(octave/matlab,该程序本人已经验证过可以执行且结果正确,这里属性集我偷了一个懒,

没有标识出具体属性名,我是使用矩阵中的列号)

著名的还有C4.5决策树算法,它是ID3的改进,作者都是同一个人,罗斯昆兰

THE END
1.python机器学习算法之决策树入门讲解决策树分类算法python4.局部最优解:决策树构建时使用贪婪算法,可能导致生成局部最优的树结构,而不一定是全局最优。这可能需要在多个不同的初始条件下训练多个决策树来减轻这一问题。 5.特征连续性处理:决策树通常将特征看作离散值,不擅长处理连续特征。尽管有方法可以将连续特征处理为离散特征,但这增加了复杂性。 https://blog.csdn.net/2301_82059354/article/details/144252079
2.回归二分类和多分类交叉验证交叉熵损失函数k使用该参数方案对整个训练数据集训练之后,得到最后的f函数。 04 为什么逻辑回归采用交叉熵损失函数,而不是平方损失函数? 我的作答: 因为交叉熵损失函数能够体现逻辑回归的预测结果与真实值之间的相关程度,而平方损失函数只能简单地计算预测https://mp.weixin.qq.com/s?__biz=Mzg4MzcxMjIzMQ==&mid=2247487593&idx=2&sn=d3964fd19f5a13282aa2c22b6dbacff7&chksm=cee34e498619c573b898af986c0fe8ec1202474a05301d131f366b29771e77f6cf011dfd0771&scene=27
3.python机器学习笔记:深入学习决策树算法原理特征选择是指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准,从而衍生出不同的决策树算法。 1.2 决策树生成 根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。树结构来说,递归结构是最容易理解的方式。 https://www.flyai.com/article/622
4.python实现决策树C4.5算法详解(在ID3基础上改进)python下面小编就为大家带来一篇python实现决策树C4.5算法详解(在ID3基础上改进)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、概论 C4.5主要是在ID3的基础上改进,ID3选择(属性)树节点是选择信息增益值最大的属性作为节点。而C4.5引入了新概念“信息增益率”,C4.5是选择信息增益率https://www.jb51.net/article/115025.htm
5.增强回归树模型mob64ca1411e411的技术博客在前面决策树的介绍中,我们使用ID3算法来构建决策树;这里我们使用CART算法来构建回归树和模型树。ID3算法是每次选取当前最佳的特征来分割数据,并按照该特征的所有可能取值来区分。比如,如果一个特征有4种取值,那么数据将被切分成4份。很明显,该算法不适用于标签值为连续型的数据。 https://blog.51cto.com/u_16213690/12764986
6.机器学习——全套PPT课件.pptx机器学习概述复旦大学赵卫东博士第1章机器学习基础.pptx第2章机器学习基本方法PCA和SVD.pptx第2章机器学习基本方法回归分析.pptx第2章机器学习基本方法可视化.pptx第3章决策树与分类算法.pptx第4章1聚类分析.pptx第4章2EM算法.pptx第5章文本分析.pptx第6章神经网络.pptx第7章贝叶斯网络.pptx第8章支持向量机.pptxhttps://m.book118.com/html/2024/0909/6125221241010220.shtm
7.基于聚类分析和决策树算法的装车工时预测模型其特征在于:它包括聚类分析算法模块和决策树算法模块,所述预测模型将历史数据通过聚类分析算法,划分时长区间,进而得出决策树算法的分类方案,再通过历史数据输入包括包装方式、吊装方式等影响最终装车工时的属性集合,与聚类分析的分类方案联系起来,利用C4.5决策树算法生成最终的决策树数据模型,最终来预测出未来的装车工时;https://wenku.baidu.com/view/682051b2cf1755270722192e453610661fd95ac7.html
8.常用数据挖掘算法总结及Python实现第四章 KNN(k 最邻近分类算法)16 第五章 决策树19 第六章 朴素贝叶斯分类https://www.modb.pro/db/1798520229306912768
9.决策树——ID3C4.5CART决策树ID3算法的过程为: 输入:训练数据集 ,每个样本有 个离散特征,特征集合为 ; 输出:决策树 。 1 初始化信息增益的阈值 ; 2 判断样本是否为同一类输出 ,如果是则返回单节点树 ,标记类别为 ; 3 判断特征 是否为空,如果是,则返回单节点树 ,标记类别为样本中输出类别 https://www.jianshu.com/p/3acd4150db05