DataWhale-河北高校邀请赛-task3-特征构造

天天向上小队-天天

特征工程

特征工程目标

对于特征进行进一步分析,并对数据进行处理;

尝试构造新特征,使用模型预测结果检验其价值;

完成对于特征工程的分析,并对数据进行一些图标或者文字总结并打卡;

内容介绍

常见特征工程包括:

  1. 异常处理:

    1. 通过箱型图|3-sigma 识别异常值,并对其进行替换
    2. BOX-COX转换(处理有偏分布)
    3. 长尾截断
  2. 特征归一化|标准化:

    1. 标准化(当成正态分布,将其标准正态化)
    2. 归一化(转换到【0,1】区间)
    3. 针对幂律分布,可以采用公式:log((1+x)/ (1+median))
  3. 数据分桶:

    1. 等频分桶
    2. 等距分桶
    3. Best-KS分桶(类似利用基尼指数进行二分类)
    4. 卡方分桶
  4. 缺失值处理:

    1. 不处理(针对类似XGBoost等树模型)
    2. 删除(缺失数据太多)
    3. 插值补全,包括均值|中位数|众数|建模预测|多重插补|压缩感知补全|矩阵补全等
    4. 分箱,缺失值一个箱
  5. 特征构造

    1. 构造统计量特征,包括计数、求和、比例、标准差等等
    2. 时间特征,包括相对时间、绝对时间、,节假日,双休日等
    3. 非线性变换,包括log|平方|根号等
    4. 特征组合,特征交叉(ps:特征组合又叫特征交叉,两者一个意思):
      1. 多项式组合
      2. 基本初等函数组合
      3. 根据数据实际意义,构造具有先验知识的新特征
  6. 特征筛选:

    1. 过滤式(filter):先对数据进行特征选择,然后再训练学习器,常见的方法有Relief|方差选择法|相关系数法|卡方检验法|互信息法
    2. 包裹式(wrapper):直接把最终将要使用的学习器的性能作为特征自己的评价准则,常见方法有LVM(Las Vegas Wrapper)
    3. 嵌入式(embedding) :结合过滤式和包裹式,学习器训练过程中自动节能型了特征选择,常见的有lasso回归
  7. 降维

    1. PCA|LDA|LCA
    2. 特征选择也是一种降维

    缺失值处理:

    data.fillna(),pandas已有的缺失值填充方法

    data.fillna(axis=0,method='ffill') 用前面最近的非缺失值填充缺失值

    data.fillna(axis=0,method='bfill')有后面最近的非缺失值填充缺失值

    data.fillna(data.mean()) 用平均值填充,其它类比

    特征构造是一场数据挖掘比赛要投入的时间最多的环节,贯穿整个比赛,挖掘出好的特征或多或少能提高模型最后的效果。

    DataWhale给出的特征构造十分全面,非常适合我这种入门数据挖掘的小白,把思路、方法介绍地比较完整。

    个人感觉,特征工程含两个模块:基本数据处理,新特征构造。

    前者能玩的花样不多,前面已经讲的很清楚了,后者就至关重要了,甚至可以说,可遇不可求。

    下面讲一下我的特征工程

    基本的数据处理,无论是pandas、sklearn都有丰富全面的接口

    类别变量编码

    类别变量的编码我花了一些时间,效果不显著,感觉是踩坑了。

    python 第三方库:category_encoders 包含了我能搜到的绝大部分类别编码方式

    import category_encoders as ce
    '''
    BackwardDifferenceEncoder,BinaryEncoder,HashingEncoder,HelmertEncoder,OneHotEncoder,SumEncoder,
    CatBoostEncoder(),CountEncoder(),GLMMEncoder(),JamesSteinEncoder(),LeaveOneOutEncoder(),MEstimateEncoder(),OrdinalEncoder()TargetEncoder()
    '''
    # 举一个例子
    enc = ce.OneHotEncoder(cols=['model','brand']handle_unknown='value', handle_missing='value')
    enc.fit(train_pd)
    model_and_brand = enc.trainsform(train_pd)
    

    数值类别基本处理:

    • 标准化|归一化等,用pandas实现起来快速而简单,不赘述

    特征构造:

    • 日期特征: createDate - regionDate 相当于汽车使用时间
    • 连续变量之间:
      • 多项式特征构造:ex:v_0 * v_1, v_10*v_12, v_13- v_0,等等
      • 基本初等函数构造,及组合
        • log(v_0 - min(v_0)+1)
        • sqrt(v_12)
        • sqrt(v_11) + log(v_1 - min(v_1) + 1)
        • 等等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值