• 10-3[RF] feature selection


             main idea:

    计算每一个feature的重要性,选取重要性前k的feature;

    衡量一个feature重要的方式:如果一个feature重要,则在这个feature上加上noise,会对最后performance影响很大。

    1.feature selection的含义及优缺点

      去除冗余的特征(比如,年龄和出生年月两个特征,根据出生年月能计算出年龄)

            无关的特征(研究病人的病情,和他的医保类型没有关系)

      优点(选好特征后):

      a. 效率(feature变少,维度变低)

      b. 泛化(坏的特征被剔除,相当于剔除了特征中noise)

      c. 可解释性

      缺点(特征选择时):

      a. 特征组合的个数很多,如果遍历每种组合,计算量大

      b. 如果没有选到合适的特征,用一些不怎么好的特征进行模型训练,会带来过拟合

      c. 如果b中情况发生,则不具有可解释性

    2.feature select方法

      a.linear model

        $W^tx$,$W_i$小,表示该特征不重要

      b.permutation test

      根据加上noise和没有加noise之间的performance差距衡量特征的重要性

      image

      使用permutation,在feature i上加noise(保持了feature i的分布):

         保持其他feature不变,随机排列 $X_{ni}$ 的顺序

    3.结合OOB做feature selection(针对 Random Forest)

      根据上面的公式,可以知道,需要进行d+1次训练(d为特征的个数),原始数据上进行的训练+d(特征i上进行permutation)

      据上进行的训练

      当使用bagging时,会有一部分数据没有被使用,成为OOB数据,用这些数据进行OOB validation

      在validation时,在OOB 数据上进行permutation

  • 相关阅读:
    c# 菱形,三角形
    c#判断一个时间的时间段
    c# 1,判断是否为正整数 2 判断体重
    数据库 基础
    c#100 计算行李重量
    c#基础 1,100以内的与7相关的数字;2,计算器,
    String 类;Math 类
    常用的C#类
    冒泡排序与快速排序
    数据库基本知识
  • 原文地址:https://www.cnblogs.com/porco/p/4261006.html
Copyright © 2020-2023  润新知