def chooseBestFeatureToSplitdataSet numFeatures = lendataSet0 - 1 #特征数量 baseEntropy = calcShannonEntdataSet #计算数据集的香农熵 bestInfoGain = 00
该代码实现了决策树算法中选择最优特征的功能,具体解释如下:
- 第一行计算数据集中特征的数量numFeatures。
- 第二行计算数据集的香农熵,即数据集中所有样本的分类信息的不确定性,这是计算信息增益的基础。
- 第三行初始化最优信息增益和最优特征的索引值。
- 第四行开始遍历所有特征。
- 第六行获取数据集中第i个特征的所有取值。
- 第七行创建一个空集合uniqueVals,用于存储不重复的特征取值。
- 第八行初始化经验条件熵newEntropy为0。
- 第九行开始遍历特征取值。
- 第十行调用splitDataSet函数,将数据集按照当前特征值划分成子集,得到子集subDataSet。
- 第十一行计算子集subDataSet占总数据集的概率prob。
- 第十二行计算子集subDataSet的经验条件熵,根据公式计算。
- 第十三行根据公式计算信息增益。
- 第十四行打印每个特征的信息增益。
- 第十五行如果当前特征的信息增益大于最优信息增益,更新最优信息增益和最优特征的索引值。
- 第十六行返回最优特征的索引值。
原文地址: http://www.cveoy.top/t/topic/e5IN 著作权归作者所有。请勿转载和采集!