3. 特征工程-零基础入门数据挖掘 - 二手车交易价格预测

1. 常见的特征工程包括:

1.1 异常处理:

  • 通过箱线图(或 3-Sigma)分析删除异常值;
  • BOX-COX 转换(处理有偏分布);
  • 长尾截断;

1.2 特征归一化/标准化:

  • 标准化(转换为标准正态分布);
  • 归一化(抓换到 [0,1] 区间);
  • 针对幂律分布,可以采用公式: log(1+x/(1+median))

1.3 数据分桶:

  • List item
  • 等频分桶;
  • 等距分桶;
  • Best-KS 分桶(类似利用基尼指数进行二分类);
  • 卡方分桶;

1.4 缺失值处理:

  • 不处理(针对类似 XGBoost 等树模型);
  • 删除(缺失数据太多);
  • 插值补全,包括均值/中位数/众数/建模预测/多重插补/压缩感知补全/矩阵补全等;
  • 分箱,缺失值一个箱;

1.5 特征构造:

  • 构造统计量特征,报告计数、求和、比例、标准差等;
  • 时间特征,包括相对时间和绝对时间,节假日,双休日等;
  • 地理信息,包括分箱,分布编码等方法;
  • 非线性变换,包括 log/ 平方/ 根号等;
  • 特征组合,特征交叉;
  • 仁者见仁,智者见智。

1.6. 特征筛选

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

1.7 降维

  • PCA/ LDA/ ICA;
  • 特征选择也是一种降维。
2. 特征工程
2.1 数据理解

目的:探索数据,了解数据,主要在 EDA 阶段完成。

  1. 定性数据:描述性质
    a) 定类:按名称分类——血型、城市
    b) 定序:有序分类——成绩(A B C)
  2. 定量数据:描述数量
    a) 定距:可以加减——温度、日期
    b) 定比:可以乘除——价格、重量
2.2 数据清洗

目的:提高数据质量,降低算法用错误数据建模的风险。

  1. 特征变换:模型无法处理或不适合处理
    a) 定性变量编码:Label Encoder;Onehot Encoder;Distribution coding;
    b) 标准化和归一化:z分数标准化(标准正太分布)、min-max 归一化;
  2. 缺失值处理:增加不确定性,可能会导致不可靠输出
    a) 不处理:少量样本缺失;
    b) 删除:大量样本缺失;
    c) 补全:(同类)均值/中位数/众数补全;高维映射(One-hot);模型预测;最邻近补全;
    矩阵补全(R-SVD);
  3. 异常值处理:减少脏数据
    a) 简单统计:如 describe() 的统计描述;散点图等;
    b) 3∂ 法则(正态分布)/箱型图截断;
    c) 利用模型进行离群点检测:聚类、K近邻、One Class SVM、Isolation Forest;
  4. 其他:删除无效列/更改dtypes/删除列中的字符串/将时间戳从字符串转换为日期时间格式等
2.3 特征构造

目的:增强数据表达,添加先验知识。

  1. 统计量特征:
    a) 计数、求和、比例、标准差;
  2. 时间特征:
    a) 绝对时间、相对时间、节假日、双休日;
  3. 地理信息:
    a) 分桶;
  4. 非线性变换:
    a) 取 log/平方/根号;
  5. 数据分桶:
    a) 等频/等距分桶、Best-KS 分桶、卡方分桶;
  6. 特征组合
2.4 特征选择

目的:降低噪声,平滑预测能力和计算复杂度,增强模型预测性能。

  1. 过滤式(Filter):先用特征选择方法对初识特征进行过滤然后再训练学习器,特征
    选择过程与后续学习器无关。
    a) Relief/方差选择/相关系数/卡方检验/互信息法
  2. 包裹式(Wrapper):直接把最终将要使用的学习器的性能作为衡量特征子集的评
    价准则,其目的在于为给定学习器选择最有利于其性能的特征子集。
    a) Las Vegas Wrapper(LVM)
  3. 嵌入式(Embedding):结合过滤式和包裹式方法,将特征选择与学习器训练过程
    融为一体,两者在同一优化过程中完成,即学习器训练过程中自动进行了特征选择。
    a) LR+L1或决策树
1. 箱线图在这里插入图片描述

两端边的位置分别对应数据批的上下四分位数(Q3和Q1),在Q3+1.5IQR和Q1-1.5IQR处画两条与中位线一样的线段,这两条线段为异常值截断点,称其为内限;在Q3+3IQR和Q1-3IQR处画两条线段,称其为外限。处于内限以外位置的点表示的数据都是异常值,其中在内限与外限之间的异常值为温和的异常值(mild outliers),在外限以外的为极端的异常值(extreme outliers)。四分位距IQR=Q3-Q1。

2. 数据拼接
data = pd.concat([Train_data, Test_data], ignore_index=True)
3. 数据分桶
bin = [i*10 for i in range(31)]
data['power_bin'] = pd.cut(data['power'], bin, labels=False)
4. 数据归一化、正则化
4.1 min-max缩放

在这里插入图片描述

4.2 特征标准化/方差缩放

在这里插入图片描述

5. one-hot编码/虚拟编码
##one-hot编码
pd.get_dummies(df, prefix=['city'])
##虚拟编码
pd.get_dummies(df, prefix=['city'], drop_first=True)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值