特征工程:数据处理,模型训练集锦(一)

本文是长期学习总结笔记,文中图片摘自寒小阳老师上课讲义。

这里写图片描述

##数据格式化

数据量不大,可以存文本,数据库
数据量大,放集群hadoop上:hive表,hdfs文件

##数据清洗

这里写图片描述

##数据缺省

  1. 如果缺值的样本占总数比例极高,我们可能就直接舍弃了,作为特征加入的话,可能反倒带入noise,影响最后的结果了
  2. 如果缺值的样本适中,而该属性非连续值特征属性(比如说类目属性),那就把NaN作为一个新类别,加到类别特征中
  3. 如果缺值的样本适中,而该属性为连续值特征属性,有时候我们会考虑给定一个step(比如这里的age,我们可以考虑每隔2/3岁为一个步长),然后把它离散化,之后把NaN作为一个type加到属性类目中。
  4. 有些情况下,缺失的值个数并不是特别多,那我们也可以试着根据已有的值,拟合一下数据,补充上。
    某一特征列缺省值少:填充
    某一特征列缺省值多:去掉该特征列
    某一特征列缺省值中等:类别型特征列,当成一类
    如果缺值的样本适中,而该属性为连续值特征属性,有时候我们会考虑给定一个step(比如这里的age,我们可以考虑每隔2/3岁为一个步长),然后把它离散化,之后把NaN作为一个type加到属性类目中

##正负样本不均衡

树模型对样本不均衡问题敏感度比LR模型(GD)的敏感度低。

1.)欠采样:当数据量比较大时,对训练集中较多样本抽样,即去掉一部分该类样本,采样原则——分层抽样,随机抽样
选用Random Forest策略训练模型
可视化考察其分布(e.g. 金融风控比赛)

2.)过采样:当数据量不大时,增加一些训练集中较少的样本,使正负样本数相当
k近邻查找近邻点,进行插值

3.)阈值移动:不改变样本数量,对预测结果类别判定的阈值设定加入缩放因子(修改损失函数,破坏损失函数的凹凸性)
e.g.: m + m^+ m+表示正例数目, m − m^- m表示反例数目,根据模型的某样本的整理可能性为 y y y,则预测类别时需要考虑的是 y 1 − y / m + m − = y 1 − y ⋅ m − m + \frac{y}{1-y}/\frac{m^+}{m^-}=\frac{y}{1-y}\cdot\frac{m^-}{m^+} 1yy/mm+=1yym+m和1的关系,1表示正负样本数目相当时的阈值

##数据与特征处理

数值型/类别型/文本型/时间型/统计型/组合型特征处理
###数值型
幅度调整、归一化normalization(sklearn里MinMaxScaler,StandardScaler)
统计值max、min、mean、std
离散化:等距、等频,连续值one-hot成向量(pd.cut)
Hash分桶:K-means聚类分组
试试 数值型 => 类别型

###类别型
one-hot编码(get-dummies)
Hash技巧:文本——>bag of words——>Hash技巧分桶向量降维
这里写图片描述

###时间型
既可以看做连续值, 也可以看做离散值
这里写图片描述

###文本型
文本数据预处理后, 去掉停用词, 剩下的词组成的list,在词库中的映射稀疏向量。
bag-of-word
n-gram
TF-IDF:
这里写图片描述
word2vec:映射到固定维度向量后,原空间向量的关系被保留

###组合型
组合特征下对应的变量统计值histogram(分布状况),用笛卡尔积组织新组合特征,获得两个特征维度的交叉关系(在组合特征上出现是1,否则是0,使用组合特征会导致组合特征维度暴增,可以先对用户或者商品聚类,再进行组合)
这里写图片描述
用GBDT产出特征组合路径:GBDT的主树一条路径上包含的特征
组合特征和原始特征一起放进LR训练

这里写图片描述
这里写图片描述

##特征选择的方式

原因:冗余——部分特征的相关度太高了, 消耗计算性能。噪声——部分特征是对预测结果有负影响
特征选择 VS 降维:前者只踢掉原本特征里和结果预测关系不大的, 后者做特征的计算组合构成新特征。SVD或者PCA确实也能解决一定的高维度问题

过滤型Filter评估每个特征和结果值的相关程度,排序留下top相关的n个特征(Pearson相关系数、互信息、距离相关度等去判定,缺点是没有考虑特征之间的关联作用,比如特征1和特征6分别对结果作用不大,但是特征1和特征6关联在一起后的特征对结果作用大)(sklearn里SelectKBest,SelectPercentile)

包裹型Wrapper把特征选择看做一个特征子集搜索问题,递归地删除特征
这里写图片描述
(sklearn里RFE)

嵌入型Embedded:根据模型分析特征的重要性,L1正则化方式做特征选择
(维度较高时使用)

##模型参数选择

网格搜索,交叉验证(sklearn里GridSearchCV)

##过拟合v.s.欠拟合

这里写图片描述

###解决过拟合方法

1.增大训练数据集
2.early stopping:记录验证集的accuracy,连续k(自己设定)个Epoch都没提升
3.Dropout:每次训练随机关闭若干神经元(不参数本次迭代训练)
4.正则化L1,L2

###解决欠拟合方法

1.找更多特征
2.减小正则化系数

##线性模型的权重分析

根据特征系数分许特征重要性

##Bad-case分析

这里写图片描述

##模型融合

Bagging:RF
这里写图片描述

Boosting
Adaboost(分类树,残差分类器,针对分错的有问题的那部分样本进行训练)
这里写图片描述
这里写图片描述

GBDT(回归树,对差值用回归树拟合)
这里写图片描述

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值