决策树有三种常见的启发式生成算法,信息增益就是其中之一。计算某一特征的信息增益主要分为两步,第一步是计算数据集的信息熵,, 第二步是计算每个特征的信息增益,特征 A 对于数据集 D 的经验条件熵可以表示为 , 其中CK代表的是属于某一类的样本个数,D 是整个数据集的样本数量,根据某一特征不同取值可以将数据划分为,其中 , K 为类别的数目,某一特征的信息增益即为信息熵和经验条件熵的差。 现有一数据集,有 4 个特征,分别为教育程度、是否有车、是否有正式工作和征信情况,通过这 4 个特征决策是否予审批信用卡,数据都已经通过 dataSet 给出,其中 dataSet 每行的前 4 列依次代表上述特征,最后一列代表对应的 label。 实现 calc_max_info_gain 功能,该函数的输入是一个二维数组 dataSet(从当前路径dataSet.csv中读取),要求在给定数据集的情况下,计算所有特征中信息增益最大的特征对应的索引和相应的信息增益值,结果以 list 形式返回,list 长度为2,第一个元素为特征的索引,数据类型为 int,比如教育程度是的索引是 0,是否有车是 1;第二个元素是该特征对应的信息增益,数据类型为 float,最后系统会将该 list 进行输出,在代码部分中,该 list 用 max_info_gain 进行表示。 其中dataSet.csv的示例数据如下:
加载中...