数据挖掘过程总结

根据博客知乎等资料加上自身理解整理的资料

1.问题定义:分类/回归,可行性分析

2.数据准备与数据预处理

  • 数据准备:确定数据挖掘任务所涉及的操作数据对象(目标数据),也就是根据数据挖掘任务的具体要求,从相关数据源中抽取与挖掘任务相关的数据集

  • 数据清洗:清除错误异常样本(根据问题确定具体判断条件),清除重复样本

  • 缺失值:样本缺失值较少时,使用均值\众数填充,针对模型思考,对于树模型,可以把缺失值当成一种类型 较多时,可考虑直接清洗该样本

  • 数据转换:包括类型转换和降维处理,归一化(需结合模型思考,例如树模型不需要)

3.样本不均衡(针对分类)

A.重构数据集

  • 过取样:通过增加少数类的样本来提高少数类的分类性能,最简单的过取样方法是随机复制少数类样本,缺点是没有给少数类增加任何新的信息,会使分类器学到的决策域变小,从而导致过学习。改进的方法有SMOTE算法(根据一定的规则随机制造生成新的少数类样本点,并将这些新合成的少数类样本点合并到原来的数据集里,生成新的训练集)、Borderline-SMOTE(主要是通过在适当区域内进行插值,以保证新增加的样本是有价值的)。

  • 欠取样:通过减少多数类样本来提高少数类的分类性能,最简单的欠取样方法是随机的去掉某些多数类样本来减少多数类的规模,缺点是容易丢失多数类的一些重要信息。

B. 改进分类器算法

主要是通过调节各类样本之间的代价函数、对于不同类的样本设置不同的权值、改变概率密度、调整分类边界等措施使其更有利于少数类的分类。

4.特征工程

  • 离散化:分桶,one-hot编码,例如年龄特征,可以分为0-20岁,20岁-40岁,40岁以上,共3个桶,也就是3维特征,25岁对应的3维特征为(0,1,0),如何分比较合理应该结合具体业务问题,再通过特征选择或交叉检验确定分法

  • 交叉:例如在点击率预估中,性别和行业这两维特征的交叉,男性/体育,女性/化妆品可以做为两维交叉0/1特征。另外交叉也可以通过模型自动化交叉,例如用GBDT, FM等算法

5.特征选择

意义:1.避免维度灾难 2.降低模型压力
方法:

  • 过滤式选择(filter):计算每一个特征与响应变量的相关性:工程上常用的手段有计算皮尔逊系数和互信息系数,皮尔逊系数只能衡量线性相关性而互信息系数能够很好地度量各种相关性,但是计算相对复杂一些,得到相关性之后就可以排序选择特征了,然后过滤掉相关性低的特征

  • 包裹式选择(wrapper):直接把最终将要使用的学习器的性能作为特征子集的评估准则。从最终学习性能来看,包裹式选择一般比过滤式选择更好,但需要多次训练模型开销大

  • 嵌入式选择(embedding):将特征选择和学习器融为一体,两者在同一个优化过程,即学习器训练过程做了特征选择(树模型)

新型方法

  • 深度学习:目前这种手段正在随着深度学习的流行而成为一种手段,尤其是在计算机视觉领域,原因是深度学习具有自动学习特征的能力,这也是深度学习又叫unsupervised feature learning的原因。从深度学习模型中选择某一神经层的特征后就可以用来进行最终目标模型的训练了。

6.模型及评估

  • 模型选择:对于数据挖掘任务,可以先采用LR(分类)测试效果,数据挖掘3架马车(分类/回归): RF,GBM, XGBOOST

  • Baseline设置:可利用一些简单规则,例如global average预测, 众数预测等

  • 评估方法:
    a.留出法(hold-out):直接将数据集分为互斥的两个集合,一个拿来训练另一个拿来验证训练的模型,注意保持数据分布的一致性。
    b. 交叉验证(cross-validation):将数据集随机分为N份,依次拿一个fold作为测试,剩下的N-1个fold作为训练,共实验N次

  • 性能度量:
    分类任务:错误率与精度;查全率,查准率与F1;ROC与AUC等
    回归任务: 平均绝对值误差;均方误差;方差等
    另外,可根据实际的业务指标设定自己的度量标准。

参考:
http://www.ciotimes.com/bigdata/60429.html
http://blog.sina.com.cn/s/blog_814f5e700100z0wo.html
http://www.zhihu.com/question/28641663/answer/41653367
周志华,机器学习

你可能感兴趣的:(机器学习,数据挖掘)