zoukankan      html  css  js  c++  java
  • 2(2).特征处理---连续型特征

    一.查看变量的缺失值(missing value,空值)个数以及所占比例

    连续型数据探索

    二.画频数占比分布图,查看样本在该特征值上的分布

    • 根据连续变量的值域范围,将该变量分成10箱,就是分成10段,箱数可自由选择;
    • 统计每一箱内样本的频数占比:该箱内样本个数/总样本个数。然后将每一箱的频数比例画出来:
    sns.distplot(data,kde=True) # 或 df.hist(bins=10)

    三.画“好坏样本比”曲线,也叫比率曲线

    • 根据连续变量的值域范围,将该变量分成10箱,就是分成10段,箱数可自由选择;
    • 统计每一箱内的两类样本的比值:该箱内label=1的样本个数 / 该箱内label=0的样本个数;
    • 可以看出该特征对两类样本的区分度。
    • 问题:在实际画图的时候,会出现一个问题,当分母=0的时候,该比值会无穷大,画不出来;
    • 解决办法:找到该样本集中总体占比多的那一类,比说label=1的样本多,那么统计每一箱内label=1样本个数 / 该箱内总样本个数,效果也是一样的,因为就只有两类。

    四.极端值分析

    • 在上一步画图的时候,就可以看出来有哪些极端值
    • 除非是计算或者人为错误,极端值需要从业务层面进行分析
      • a) 分别计算“拥有极端值的那些样本中,label=1样本的占比R1” 和“拥有非极端值的那些样本中,label=1样本的占比R2”
      • b) 如果R1明显大于R2,则说明极端值有业务意义,建议保留,特别是从反欺诈的角度来分析一
      • 3)如果是计算或者人为错误,极端值的影响可以通过分箱被中和,对模型训练没有影响;也可以将极端值设置成缺失值/空值,然后用处理缺失值的方法进行处理

    五.计算变量的方差

    # 计算变量的方差
    # 如果方差接近于0,也就是该特征的特征值之间基本上没有差异,这个特征对于样本的区分并没有什么用,剔除
    from sklearn.feature_selection import VarianceThreshold
    selector = VarianceThreshold(threshold=0)#默认threshold=0.0
    selector.fit_transform(data[all_used_features])
    
    # 查看各个特征的方差,
    selector.variances_ ,len(selector.variances_)
    
    selector.get_params(deep=True)
    # {'threshold': 0}
    
    all_used_features_dict = dict(zip(all_used_features,selector.variances_ )) #特征和方差的对应  

    六.查看变量与label之间的相关性

     连续型特征与连续型特征间的相关性

    七.查看变量之间的相关性

    特征选择---特征相关性分析

    八.计算变量IV值(也可以考虑Gini系数)

    目的:筛选变量,IV值低的变量根据业务分析决定是否剔除,一般情况下,

    <0.02的变量可剔除
    <0.02 unpredictive
    0.02 – 0.1 weak (maybe acceptable)
    – 0.3 medium
    >0.3 strong

    九.计算AUC

    计算单变量的AUC:该变量经过lightgbm之后的AUC,AUC>0.53可以考虑留下

    十.计算importance

    将上面步骤筛选出来的特征,全部输送到lightgbm算法中训练,得到每一个特征的importance,过滤掉importance=0的变量。

    十一.其他考虑因素

     以上所有特征工程的步骤,都要跟业务结合在一起,综合考虑,衡量一个变量采用与否。

    参考文献:

    【1】特征工程步骤——以二分类问题为例

    【2】【Python数据分析基础】: 数据缺失值处理

    【3】5种方法教你用Python玩转histogram直方图

    【4】【持续更新】机器学习特征工程实用技巧大全

  • 相关阅读:
    POJ 1681 Painter's Problem(高斯消元法)
    HDU 3530 Subsequence(单调队列)
    HDU 4302 Holedox Eating(优先队列或者线段树)
    POJ 2947 Widget Factory(高斯消元法,解模线性方程组)
    HDU 3635 Dragon Balls(并查集)
    HDU 4301 Divide Chocolate(找规律,DP)
    POJ 1753 Flip Game(高斯消元)
    POJ 3185 The Water Bowls(高斯消元)
    克琳:http://liyu.eu5.org
    WinDbg使用
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/11154234.html
Copyright © 2011-2022 走看看