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】【持续更新】机器学习特征工程实用技巧大全

  • 相关阅读:
    探讨SQL Server并发处理存在就更新七种解决方案
    集合随机打乱
    订单并发5000的排队机制
    10款面向HTML5 画布(Canvas)的JavaScript库
    抽象类和接口的区别以及使用场景(记)
    常用的正则表达式
    webview加载url出现空白页面,有些页面没问题
    SQL常用语句
    Android Studio 简单介绍和使用问题小结
    Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/11154234.html
Copyright © 2011-2022 走看看