当拿到一份处理好的数据时,我们首先应该做的是什么呢?是直接上手编写代码构造模型?都说事半功倍,所以在进行数据挖掘之前,我们头脑中一定要是有个完整的路径,这样,我们就能回溯于每个环节去检查整个项目(构造的模型),同样也是帮我们梳理整个项目的环节,可以帮助我们在项目汇报中,更好地分清楚层次重点。

1、数据挖掘的基本流程

通常分为六个步骤:

1.1、商业理解

一切都是从业务出发,然后再回归于业务。所以理解业务需求,也就是目标需求至关重要

1.2、数据理解

对一小部分数据进行简单的描述,往往数据量都是很大的,从小入手,对数据有个大概的认知,例如理解各个变量具体的含义以及对业务目标的关联或者影响,也可以做一些简单的数据可视化,初步探索数据的集中与离散趋势来发现背后可能的发展规律,当然这个要结合具体业务来看

1.3、数据准备

数据收集,数据清洗,数据集成,这一部分很重要,因为缺失值和异常值对建立模型的影响很大 ,而且如何结合业务来构造特征也非常重要,特征工程(特征构造,特征筛选等)很重要!像一些Kaggle竞赛,很多时候模型算法并不能提升效果了,这时尝试一下根据业务需求以及变量(特点,含义)来构造特征,可能会有一些提升

1.4、模型建立

选择合适的挖掘算法模型,调参优化,交叉检验等,记住:不是越复杂的模型越好,根据奥卡提姆刀原理,如果效果差不多,优先选择简单的模型,因为复杂的模型意味着成本越高

1.5、模型评估

评价模型,掌握模型评价的准则,从两个大方面来说,就是校准度和区分度,包括准确率、召回率、F1 score、AUC、ROC曲线等

1.6、上线发布

A/B test很重要,很重要,很重要

2、数据挖掘的十大算法

分类算法: C4.5,朴素贝叶斯(Naive Bayes),SVM,KNN,Adabosst,CART
聚类算法: K-means,EM
关联分析: Apriori
连接分析: PageRank

2.1、C4.5

决策树算法,在ID3的基础上进行改进优化,可以处理连续值属性,通过“剪枝”解决过拟合等

2.2、朴素贝叶斯(Naive Bayes)

基于概率论的原理,通过先验概率和数据来求取后验概率从而决定分类,理解"朴素"一词的具体含义

2.3、SVM

支持向量机,明白"支持向量",“超平面”,"核函数"等概念

2.4、KNN

K近邻算法,可以理解为划取半径之内的点的类别来决定新数据的所属类别

2.5、Adaboost

是一种boost算法,将多个弱分类器组合成一个强分类器,串行算法,注意与bagging算法的区别

2.6、CART

分类回归树算法,特征分裂的评价标准不一样(Variance和Gini系数),可以实现分类也可以实现回归

2.7、Apriori

关联规则(association rules)算法,通过挖掘频繁项集(frequent item sets)来揭示物品之间的关联关系,被广泛应用到商业挖掘和网络安全等领域中。频繁项集是指经常出现在一起的物品的集合,关联规则暗示这两种物品之间可能存在很强的关系

2.8、K-means

聚类算法,通过迭代来求取中心点

2.9、EM

最大期望算法,是求参数的最大似然估计的一种方法。

2.10、PageRank

对网络中重要节点进行排序的算法

3、数据挖掘的数学原理

3.1、概率论与数理统计

假设检验、统计建模等

3.2、线性代数

矩阵分解,空间转换,数据变换,映射等

3.3、 图论

可以帮我们更好地理解数据结构以及算法的结构

3.4、最优化

凸优化,寻找最优等

数据挖掘主要步骤图 数据挖掘六大基本步骤_数据挖掘

4、总结

在做数据挖掘之前,脑海中一定要有这样一个完整的路径,并在项目中不断地去总结完善,形成自己的一套数据挖掘的方法