博客:https://www.cnblogs.com/enhaofrank/,公众号:生信AI区块链科技前沿,github:https://github.com/enhaofrank

功不唐捐 玉汝于成

数据挖掘基本流程

对于刚入门的数据挖掘小伙伴们,先要建立一个数据挖掘的流程概念。

首先,我们拿到相应的数据,这个数据有的是通过数据库,利用hive或者SQL获取你用于分析的数据;或者直接通过一些上游分析得到的数据(例如通过生物信息分析流程得到的初步结果)。

拿到数据之后,需要先对数据进行一个初步探索,需要去了解数据的各个纬度信息:

 

第一步,对数据的了解和可视化

1、几行几列,有多少个特征,多少样本

2、是否有缺失值,看看缺失值的情况

3、看数据类型,是否有一些字符型数据,因为后续的模型需要用到的是数值型数据

4、对数据做个可视化,看看数据长什么样

 

第二步,对目标的了解以及对数据的初步处理

1、对数据挖掘的目标要有所理解,通过理解,可以进行这一步的主要分析

2、缺失值:通过对数据以及目标的理解,看看 a、是否可以直接删除该缺失数据 b、如果不能删除,用什么样的方法填充它比较好,常见的有均值,中位数,或者拉格朗日法,牛顿法等填充。这个填充要基于对数据的了解,才方便自己选择具体方法进行处理,例如你的数据可能是由于低于某些仪器的检测下限所造成缺失的,那么可以用0来填充。

3、异常值:看数据是否处于异常,可以用 3σ原则,PCA,箱线图等等,至于是否要处理也要看建模的目标对于异常值的考虑。

 

第三步,数据预处理

主要是对数据进行归一化,标准化,字符型数据转化成数值性数据,包括min-max,z-score, one-hot

 

第四步,特征工程

经历了数据的预处理之后,接下去就是进行特征工程了,特征工程顾名思义就是对数据里面的特征进行一个操作,选择后续可以提高模型效果的特征。

1、相关性分析,选择一些与目标强相关性的特征

2、递归法,一开始,可以让所有特征进入模型,之后利用模型选择出来的important_feature得到重要特征,再选择top n的特征(n由自己选择)进入模型训练

3、还有其他一些方法(后续补充)

 

第五步,建立模型

在进行特征工程之后,我们一般会建立2-3个模型,来比较这几个模型在这个任务上哪个模型更好。

例如:

分类模型:KNN、贝叶斯分类、决策树、随机森林、SVM、逻辑回归。。。

回归模型:简单线性回归、多重线性回归、一元非线性回归、lasso回归、岭回归。。。

聚类模型:k-means、DBSCAN密度法、层次聚类法。。。
那么一般这些模型大家都可以直接使用sklearn中对应的模型。
 
 
第六步,模型优化
选择好模型之后,对于模型性能的进一步优化也是非常重要的,
模型的参数优化:网格搜索、随机搜索,选择最优的模型参数
k-折交叉验证,避免过拟合
模型评价:一般模型评价有准确率(分类模型),或者RMSE,R2(回归模型)等,当然也有F1-score(分类问题里面数据不平衡情况)等。
 

以上内容是初步的一个内容,也是数据挖掘的基本流程,后续会对每一步进一步的展开说明,并且有相关的数据来展示。

 

第一次用博客来记录自己的学习内容,希望可以通过这个平台多输出一些优质的内容。

如有需要联系我的话,可以发email给我:18868801916@163.com

 

参考资料:

特征选择方法总结 (qq.com)

一文全览机器学习建模流程(Python 代码) (qq.com)

posted on 2020-04-05 15:21  enhaofrank  阅读(4747)  评论(0编辑  收藏  举报

导航