码农的世界机器学习与数据挖掘Python

小蛇学python(13)当我们拿到数据,该做些什么

2018-06-01  本文已影响118人  跌跌撞撞小红豆
数据

当我们拿到数据集的时候,我们应该做些什么呢?在数据的汪洋大海中,你是否体会到了同在北上广奋斗的人们一样的在午夜的孤寂感?在充实着林林总总的数据表格中,你试图从中发现规律,可是否感受到了像心上人在身边却无法说出口的那层窗户纸。

今天写下这篇文章,算是自己对处理数据的一些感受,同大家分享。

导入,清洗

当我们拿到初始数据的时候,我们首先要做的是将数据读入并对数据进行筛选和规整。

原始数据的类型有很多,有的存在excel中,有的json格式,有的是html格式,当我们使用的数据来源多样的时候我们就需要把他们统一起来以一种格式存在。

接下来,我们需要筛选数据,清除离群值,异常值,对缺省值进行插值或者当数据量很大的时候对缺省值直接删除也可以。

有时候,我们还需要对数据进行一些计算处理。比如在一个有关全国婴儿体重的数据集中,有这样两列数据,分别是磅和盎司,很明显这两行所表述的都是婴儿的体重,当我们进行数据分析时必须将他们并为一行处理。

这一步中,我们经常使用的库就是numpy以及pandas。

单变量探索

数据处理好后,我们需要对每个变量进行单一的可视化。进而初步了解变量的分布规律以及可能存在的潜在的相关关系,帮助之后的分析提供一个大致方向。

我们可以画一个条形图,看看数据集中在哪一块?在这一步中,我们可以很清楚的发现我们得到的数据是否适合我们所作的研究,判断实验提供的数据的可靠性。

比如我们探究一个问题"第一胎是否早产",根据得到的数据以及常识我们知道,跟孕妇年龄、是否流产、家庭经济情况、婴儿性别等因子有关系。我们对这些变量做条形图。假如我们发现当婴儿性别做自变量时候,妊娠周期大致相同,我们可以初步排除婴儿性别对结论的影响。

这就是所谓的确定大致的研究方向。

这一步主要用matplotlib。

多变量探索

当我们通过单变量探索筛选出最有可能影响结论的因子后,我们需要对这些因子进行相关探索,或者说叫成对探索。

比如画个散点图,看看两个变量之间是否密切联系,如果两个变量之间的相关关系很大,我们要考虑使用PCA降维。

这一步主要使用matplotlib和sklearn。

选择模型

当我们通过前面的所有过程,终于将原始数据处理成了我们想要的多维解释变量,我们就可以考虑使用模型了。

机器学习的方法很多,就连最简单的普通最小二乘法也可以称得上是机器学习算法。

主要分为两类,监督学习和无监督学习。有监督学习主要应用于分类与回归。比如最常用的k-近邻就属于分类,而普通最小二乘法就属于回归。

无监督学习主要分为聚类和降维。比如很出名的LDA算法就是聚类。

这一步,你可以使用python中的sklearn,不过不推荐使用。如果是想深入学习,还是使用tensorflow或者caffe等等机器学习框架。

估计与假设检验

这一步也可以称之为模型评估。

最常用的模型评价指标就是accuracy和AUC。这方面的理论知识主要来自于概率论。

使用工具numpy即可。

可视化

当你最终做出了结果,当然要用可视化效果去冲击你的客户。可视化对于产品功能来说是个可有可无的鸡肋,但对于客户来说,就是相当于常常挂在嘴边的那个我只看结果不看过程的结果。

听说R和python马上就要融合了,发起者就是开发了pandas库的Wes Mckinney。这给我们可视化带来了福音,因为,R的效果要优于python。

上一篇下一篇

猜你喜欢

热点阅读