某电商平台计划使用决策树为首页活动根据用户的兴趣偏好进行排序,将用户最可能感兴趣的活动优先进行展示。对于特征选择部分,为了改进决策树信息增益中的诸多缺陷,如泛化性较差以及对某一类别样本数量过于敏感等,计划使用信息增益比作为特征重要性的判别标准。 计算某一特征的信息增益主要分为两步,第一步是计算数据集的信息熵,表示为: , 第二步是计算每个特征的信息增益,特征 A 对于数据集 D 的经验条件熵可以表示为: 其中 代表的是属于某一类的样本个数,D 是整个数据集的样本数量,根据某一特征不同取值可以将数据划分为分为,其中,K 为类别的数目,某一特征的信息增益即为信息熵和经验条件熵的差。 信息增益比表示为当前特征的信息增益与当前特征属性熵的比值,其中属性熵 ,代表的是属于某一特征的样本个数。
输入描述:
输入是一个二维 list,每一列表示一个特征,最后一列表示标签 label,特征和label都为整数,其中特征取值有三种:0,1,2,label取值有两种:0,1。


输出描述:
输出信息增益比最大的特征对应的索引,返回值是一个整数。
示例1

输入

[ [0, 0, 0, 0, 0],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[0, 1, 1, 0, 0],[0, 0, 0, 0, 0]]

输出

1

说明

第二维特征的信息增益比最高,其索引为 1,所以返回 1

备注:
(1)使用 python 中的 eval 函数可以很方便地还原输入内容;(2)python3中可以使用第三方的库有:numpy、scipy、pandas、scikit-learn。(3)为了保证结果的唯一性,不存在信息增益比相同的特征。
加载中...