zoukankan      html  css  js  c++  java
  • 决策树*时的特征选择

    分类任务

    1. 信息增益

     

    信息增益直观理解:在选定特征对数据进行划分后,数据分布不确定性减少的程度,信息增益越大的特征越好。

    信息增益的缺点

    信息增益倾向于选择类别数较多的特征

    这怎么解释呢?从信息增益的计算公式可以看出,不管是选择什么特征,H(D) 项表述的是原数据分布的熵,是一样的,那我们只需要分析 H(D|A) 这一项就可以了,特征类别越多, H(D|A) 会越小吗?

     

    假设总样本数目为100, A特征有2个类别, A特征有10个类别,并且每个类别内的数据都是01均匀分布,那么:

    H(D|A1) = 1/2 * (H(D, A1=1) + H(D, A1=2))

    H(D|A2) = 1/10 * (H(D, A2=1) + H(D, A2=2) + ... + H(D, A2=10))

    可以看出,如果落到每个特征类别上的分布一样的话,这两种特征的条件墒是一样的。

    但如果是极端情况,特征多的类别,每个类别只有一个样本,那么其条件墒是0 (墒是大于等于0的数),最小。

    在现实中,我们的样本数量往往是有限的,类别越多的特征,分到每个特征类别下的样本会越少,那么出现样本类别不平衡的可能性越大,即条件墒越少,信息增益越大 

    2. 信息增益率 

     特征 A 对训练数据集 D 的 信息增益比:

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

    其中HA(D)是把特征 A 当作随机变量来计算的熵,而特征类别越多,熵往往越大。

    举个例子:

    只有一个类别的特征,熵为0

    有n个类别,且是均匀分布的特征的熵是:log(n),是一个单调递增的函数。

    因此,用信息增益比来作为选择特征的标准,可以弥补信息增益倾向于选择多类别特征的缺点。

    3. 用基尼系数替代熵

    我们知道熵中有复杂的对数运算,用基尼系数代替熵可以加快运算效率 

    定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。

            注意: Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。

    即 基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率

     

     

    回归任务

    均方误差最小化

  • 相关阅读:
    [树状数组]H千万别用树套树
    [可持久化权值线段树上二分] Just h-index
    [大数] 组合数
    [模板]离散化
    [树状数组] Galahad
    [可持久化权值线段树] hdu 6703 array
    python Web抓取(二)selenium模块的使用、对浏览器的按键操作及错误处理
    python 调试大法-大笨蛋的笔记
    从终端运行python程序 模块内变量的作用域、添加模块的搜索路径
    Python组织文件 实践:查找大文件、 用Mb、kb显示文件尺寸 、计算程序运行时间
  • 原文地址:https://www.cnblogs.com/xumaomao/p/15084942.html
Copyright © 2011-2022 走看看