数据挖掘一般流程
需求分析:数据挖掘任务分类:(1)预测:分类+回归(2)聚类:文档归类(3)关联性分析:购物篮分析(4)异常检测:信用卡欺诈
获取数据:sql,linux,爬虫
数据清洗(主要:去重,缺失值处理,异常值处理 工具:python pandas包)
特征工程(子集搜索策略+子集评价+降维:
(1)过滤式:计算每个特征与相应变量的相关性,过滤掉相关性较低的特征,但实际应用中,一般会逐个特征分析与预测变量的关系,在Pandas中有很多相关函数(describe,value_counts()等等)可以很清晰的表示出两者关系,也可以通过画图
(2)包裹式:以模型最终的学习性能作为特征集的评估准则,选择好的特征集,但因为需要训练多个模型,开销很大,不推荐;
(3)嵌入式:将特征选择和学习器结合,让模型训练过程中自动进行特征选择,比如各种树模型;)
算法选择
(1)数据归一化:一般的模型都需要归一化,原因:将数据维度都调整到某范围内。注意点:训练集归一化的时候要计算最大值和最小值,测试集归一化的时候也要用训练集的最大和最小值进行归一化。(很重要!!实习过程中犯的第一大错误,包括后续要产生某些新特征时,测试集一定要以训练集的指标划分!)
(2)模型选择:不管怎么样先用随机森林(Random Forest)试试,效果总不会太差,可以以这个为度量来评估后续模型的好坏。一般越复杂的模型效果越高,GBDT,XGBOOST等,但如果需求是解释性模型较高时,还是线性模型好
算法调优(参数调优,性能调优)
(1)调参:交叉验证!先大范围的调,然后再小范围的调参,直到找到相对较好的参数。
最终结果