• 决策树模型(2)特征选择


    特征选择

    特征选择问题

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

    比如在上面两图中,左图通过年龄来对样本进行分类,而右图通过工作对特征进行分类,二者究竟孰好孰坏,这是需要进行比较的。一个非常直接的想法就是仅用选择的特征去训练模型,然后得出用各个特征的准确率。但是显然这样做过于繁琐与复杂,通常特征选择的准则是信息增益或信息增益比。

    信息增益与信息增益比

    信息增益描述了在得知已知信息(特征X)的情况下能够使得类别Y的信息的不确定性减少的程度。比如说,在不知道任何样本的特征信息情况下,我们知道Y的不确定性程度为0.7,现在你知道了样本的某个特征xi,那么假设Y的不确定性程度减少为0.5,那么所得的信息增益即为0.2,这表示特征x对减少Y的不确定性程度的贡献。
    在上面的例子中,我们提到了重要的两点,第一个是Y的不确定性程度,第二个是Y在X为某个特征时的不确定性程度。那么该怎么计算它们?

    熵是反应随机变量不确定性的度量。假设随机变量X的概率分布为

    P(X=xi)=pi,i=1,2,,n

    那么其熵的定义为

    H(X)=H(P)=i=1npilogpi

    那么当随机变量X只能取0, 1时,其熵为

    H(P)=plogp(1p)log(1p)

    显然当p为0时或1时熵恰好为0,此时表明熵最小,说明随机变量X很稳定,若p为0.5,则熵对应最大,表明随机变量X很不确定,因为它取0或取1的概率相等,具有很大的不确定性。

    条件熵

    条件熵表示在已知随机变量X的条件下随机变量Y的不确定性。它通过下式定义

    H(Y|X)=i=1npiH(Y|X=xi)

    其中pi=P(X=xi)

    信息增益与信息增益比

    信息增益表示特征X给定的情况下对Y的不确定性减少的程度,因此需要知道原本Y的熵和给定X后的熵,由下式给出

    g(Y,X)=g(D,A)=H(D)H(D|A)

    其中

    H(D)=k=1K|Ck||D|logCkD

    H(D|A)=i=1n|Di||D|H(Di|A=ai)=i=1n|Di||D|k=1K|Dik||Di|log|Dik||Di|

    其中D表示训练数据集,A表示所选特征。
    通过上面的公式我们就可以计算出每个特征的信息增益啦,也就可以其进行排序,优先选择大的。
    但选择信息增益存在一个问题,即倾向于选择特征取值较多的特征。比如说若编号为其特征之一,显然来说它并没有任何实际意义,但是若计算其条件熵,我们会发现对于大多数的H(Di)其值为0,那么最后得到的条件熵也就偏低,那么最后的信息增益显然是偏大的,因此有必进行改进,一种做法是使用信息增益比

    gR(D,A)=g(D,A)HA(D)

    其中HA(D)

    i=0n|Di||D|log|Di||D|

    可以将HA(D)视为一种罚项,当特征较多时,惩罚也大,特征少时,惩罚也小一些。

  • 相关阅读:
    DOM系列之classList属性
    重新安装mysql时,Windows Service Name已经被占用了怎么办
    使用JSON字符串生成Java实体类
    一表谈现实、系统、流程、报表与BI
    【产品经理修炼之道】- 从需求到功能的转化过程
    MySQL简介
    【Git】Git 常用命令
    【仿真建模-anylogic】动态生成ConveyorCustomStation
    免费IP代理靠谱吗?靠谱的IP代理有哪些?
    Java知识点之单例模式
  • 原文地址:https://www.cnblogs.com/hywang1211/p/18097624