特征选择
特征选择问题
特征选择顾名思义就是对特征进行选择性截取,剔除掉冗余特征。这样能够减少决策树的复杂度。

比如在上面两图中,左图通过年龄来对样本进行分类,而右图通过工作对特征进行分类,二者究竟孰好孰坏,这是需要进行比较的。一个非常直接的想法就是仅用选择的特征去训练模型,然后得出用各个特征的准确率。但是显然这样做过于繁琐与复杂,通常特征选择的准则是信息增益或信息增益比。
信息增益与信息增益比
信息增益描述了在得知已知信息(特征X)的情况下能够使得类别Y的信息的不确定性减少的程度。比如说,在不知道任何样本的特征信息情况下,我们知道Y的不确定性程度为0.7,现在你知道了样本的某个特征\(x_i\),那么假设Y的不确定性程度减少为0.5,那么所得的信息增益即为0.2,这表示特征x对减少Y的不确定性程度的贡献。
在上面的例子中,我们提到了重要的两点,第一个是Y的不确定性程度,第二个是Y在X为某个特征时的不确定性程度。那么该怎么计算它们?
熵
熵是反应随机变量不确定性的度量。假设随机变量\(X\)的概率分布为
\P(X=x_i)=p_i, i = 1,2,\\cdots,n \\
那么其熵的定义为
\H(X)=H(P) = -\\sum_{i=1}\^n p_i \\mathrm{log}p_i \\
那么当随机变量\(X\)只能取0, 1时,其熵为
\H(P) = -p\\mathrm{log}p-(1-p)\\mathrm{log}(1-p) \\
显然当\(p\)为0时或1时熵恰好为0,此时表明熵最小,说明随机变量\(X\)很稳定,若\(p\)为0.5,则熵对应最大,表明随机变量\(X\)很不确定,因为它取0或取1的概率相等,具有很大的不确定性。
条件熵
条件熵表示在已知随机变量\(X\)的条件下随机变量\(Y\)的不确定性。它通过下式定义
\H(Y\|X) = \\sum_{i=1}\^np_iH(Y\|X=x_i) \\
其中\(p_i=P(X=x_i)\)
信息增益
信息增益表示特征\(X\)给定的情况下对\(Y\)的不确定性减少的程度,因此需要知道原本\(Y\)的熵和给定\(X\)后的熵,由下式给出
\g(Y,X)=g(D,A)=H(D)-H(D\|A) \\
其中
\H(D)=-\\sum_{k=1}\^K\\frac{\|C_k\|}{\|D\|}\\mathrm{log}\\frac{C_k}{D} \\
\H(D\|A)=\\sum_{i=1}\^n\\frac{\|D_i\|}{\|D\|}H(D_i\|A=a_i)=-\\sum_{i=1}\^n\\frac{\|D_i\|}{\|D\|}\\sum_{k=1}\^K\\frac{\|D_{ik}\|}{\|D_i\|}\\mathrm{log}\\frac{\|D_{ik}\|}{\|D_i\|} \\
其中\(D\)表示训练数据集,\(A\)表示所选特征。
通过上面的公式我们就可以计算出每个特征的信息增益啦,也就可以其进行排序,优先选择大的。