程序员在旅途

用这生命中的每一秒,给自己一个不后悔的未来!

0%

Python 数据分析与挖掘概述

一、数据分析与挖掘介绍

  从人类历史演变的角度出发,我们回顾整个计算机的发展历程可以看到,从第一台电子计算机(ENIAC)于1946年2月诞生到今天,也不过是短短的六十载,但就是在这短短的几十年过程中,计算机技术得到了飞速的发展,极大地促进了社会生产力的提高,提升了生产制造水平。可以说计算机技术是近代以来发展最为迅速的技术之一。
  尤其是近年来,随着半导体技术,通讯技术的不断发展,人类收集数据和存储数据的能力都得到了极大的提高。无论是在科学研究还是社会生活的各个领域中都产生积累了大量的数据,对这些数据进行分析以挖掘出蕴含在这些数据中的有用信息,已成为我们各个领域的共同需求,对改善人类的生活,促进社会的发展有着极大的作用。
  数据分析与挖掘是指利用数学和计算机的手段,对收集来的数据进行适当的处理和开发,以求最大化地开发数据的功能,发挥数据的作用。具体来说,数据挖掘是从海量的数据中挖掘出隐含的、先前未知、对决策有潜在价值的关系、模式、趋势,并利用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具、和过程。
  留心观察就会觉察到,大数据分析在我们生活中的应用案例屡见不鲜。例如许多电商网站会根据用户的历史浏览足迹、购买记录等数据,挖掘出用户的喜好等信息,然后基于用户的兴趣偏好,把用户感兴趣的物品或者视频、资讯等推荐给用户,给用户带来沉浸式的体验,让用户感到一定的满足感,优化用户的体验。

二、数据分析的流程

  在了解了数据分析与挖掘的相关背景知识后,我们又应该如何开始数据分析相关的工作的呢?首先,我们要清楚的知道一次数据挖掘任务是在什么样的背景下进行的,任务的最终目的是什么,最终的项目成果是什么,能满足什么样的需求,能带来什么样的收益。其次,要了解待分析的数据的来源,如何获取这些数据,准备好相应的数据获取方法;再对获取到的数据进行必要的处理,剔除不满足需求或者明显有差错的数据。然后,根据业务需求,建立相关的模型,利用数据进行训练,不断地对模型进行修正与优化。最后,对构建好的模型进行评估分析,选择时机部署在相应的系统上面运行。
  2.1 需求分析
  通过与相关部门人员进行交流探讨,准确理解用户和项目的功能、性能、可靠性等具体要求。
  2.2 数据获取
  要进行数据分析与挖掘的前提是要有数据的支持。数据来源可以是公司数据库里面的历史数据信息,也可以根据具体的项目需要进行网络爬虫爬取。
  2.3 数据预处理
  上一步获取到的数据往往不能直接用于建模,其中常常包含有一些脏数据。因此,在建模之前需要对数据进行预处理,这一阶段主要做的工作有:数据筛选、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、数据规约等。这些名词看起来比较抽象,但只要处理过一次具体的项目案例,对这些名词就会很熟悉了。在具体的项目中,根据数据的特征,有选择的做其中部分或者全部处理,不一定要全部都涉及。
  2.4 分析与建模
  在对数据进行预处理之后,我们就可以着手准备建模的相关事情了。在建模之前,我们要考虑,此次数据分析任务是属于数据挖掘中的哪类问题,具体的要思考,是属于这四类问题中的哪一类,分类问题、聚类问题、关联问题、预测问题。在确认了问题的归属之后,需要确定具体的分析方法。常见的问题归属有:

1)分类问题:决策树、贝叶斯、KNN、支持向量机、神经网络和逻辑回归等
2)聚类问题:划分聚类、层次聚类、密度聚类、网格聚类、基于模型聚类等。
3)关联问题:Aprior算法、Carma算法,序列算法等
4)预测问题:线性回归分析、多重线性回归分析、时间序列等。

  在我们使用Python进行数据分析的时候,并不需要每个算法都要自己去实现,有一些算法已经封装在相关的模块中了,我们在使用的时候,只需要调用这些模块即可。这也是Python在数据分析领域流行的原因之一,丰富的组件,拿来即用,戏称胶水语言。
  2.5 模型评价与优化改进
  模型评价的目的是从训练的模型中找出一个最好的,然后根据具体的业务对模型进行解释和应用。不同的问题会选择不同的模型,因此评价方法也会有所不同。例如,我们如果研究的是一个分类问题,那我们就会使用分类模型,相应地,就会选择适当的分类模型评价标准。
  2.6 系统部署
  当模型构建好,经过评估之后,如果没问题,就可以部署在具体的系统里面,投入使用了。

三、数据分析的编程语言选择

  目前主流的数据分析语言有R,Python,MATLAB三种程序语言。
数据分析编程语言

四、如何利用Python进行数据分析

  Python是一种面向对象的解释性计算机程序设计语言,他拥有高效的高级数据结构,并且能够用简单又高效的方式进行编程。用Python进行数据分析的主要原因, 是它的数据分析库很全面。例如:他有三个经典的科学计算扩展库:NumPy,SciPy,Matplotlib。这三个库是我们进行数据分析过程中必须要使用的工具模块,分别提供了快速数组处理、数值运算以及绘图功能。在数据处理方面,Pandas 是一个功能强大的为了解决数据分析任务而创建工具库,Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。除此之外,Scikit-learn库中包含了很多聚类相关的算法,这在构建聚类模型的时候相当有用。正是由于Python拥有这些库的支持,所以才成为数据挖掘领域常用的编程语言。因此,如果使用Python进行数据分析与挖掘的话,必须要熟练的掌握上述库的使用。

参考文献:
Python数据分析与挖掘(第二版)。 张良均等
Python数据分析技术综述。 高鸿斌、申肖阳等
机器学习与数据挖掘。周志华