【数据挖掘】【笔记】阅读之数据挖掘比赛基本流程

本文分享了参加Kaggle数据挖掘比赛的经验,包括数据分析、数据清洗、特征工程及模型训练验证四大模块的关键步骤。例如如何处理特征变量的分布、缺失值、变量间的相关性等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【干货】Kaggle 数据挖掘比赛经验分享
http://mp.weixin.qq.com/s/BE1mfmKJTsDSwWi16mllNA

数据分析,数据清洗,特征工程,模型训练和验证等四个大的模块

数据分析

  • 特征变量的分布
    • 连续值
      • 长尾分布且考虑使用线型模型,进行幂变换或对数变换
    • 离散值
      • 将频次较低的特征值统一编码为其他
  • 目标变量的分布
    • 连续
    • 离散值
      • 不均衡
        • 上采样/下采样
      • 某个ID上面不平衡
        • 划分训练集时考虑分层抽样
  • 变量之间的分布和相关度,发现高相关和共线性的特征

数据清洗

预处理
- 特征缺失值的处理
- 连续值:
- 偏正态分布用均值代替,保持数据均值
- 长尾分布用中值代替,避免受outlier影响
- 离散
- 众数代替
- 文本数据
。。。

特征工程

特征决定了效果的上限。case by case

特征变换

主要针对一些长尾分布的特征,进行幂变换或对数变换,使得模型(LR or DNN)更好的优化。

树模型(RF, GBDT) 对单调的函数变换不敏感。原因在于树模型求解分裂点的时候只考虑排序分位点。

特征编码

离散的类别特征。常用LabelEncoder, OneHotEncoder

对于取值较多的类别特征,OneHotEncoder会导致特征矩阵巨大,影响效果:
- 统计取值在样本中的频率,取Top N的取值做编码,剩下的类别分到‘其他类’,N作为超参数需要调优。
- 统计每个ID特征的一些统计量代替为特征
- 参考word2vec,将每个类别特征的取值映射到一个连续的向量,对这个向量进行初始化,跟模型一起训练。训练结束后,可以同时得到每个ID的Embedding。具体的使用方式,可以参考 Rossmann 销量预估竞赛第三名的获奖方案,https://github.com/entron/entity-embedding-rossmann

对于 Random Forest 和 GBDT 等模型,如果类别特征存在较多的取值,可以直接使用 LabelEncoder 后的结果作为特征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值