很多初学的朋友对大数据挖掘第一直观的印象,都只是业务模型,以及组成模型背后的各种算法原理。往往忽视了整个业务场景建模过程中,看似最普通,却又最精髓的特征数据清洗。可谓是平平无奇,却又一掌定乾坤,稍有闪失,足以功亏一篑。行业的差异性导致业务不同,影响到数据源的差异性、随着信息化共享与服务的这个“神奇”互联网行业快速发展,互联网业务逐渐的重视数据,所以互联网的从业者在看数据、使用数据的方式每一年也不同、大数据的各种技术也在快速更新中,各方面因素导致了互联网数据平台的建设、服务用户特点、数据模型与非互联网数据平台有较为显著差异。人类在努力将数据转化为信息和知识的同时,也面临着海量数据中夹杂着“脏”数据的挑战。因此,对原始数据进行有效清洗并将其转化为易理解和易利用的目标数据,己成为人类进行大数据分析和应用过程中的关键一环。数据清洗(Data Cleaning)用来对数据进行审查和校验,进而删除重复信息,纠正存在的错误,并保持数据的一致性、精确性、完整性和有效性。由此可见,数据清洗在整个大数据分析过程中扮演着重要的角色。
数据科学过程
现代社会的各个角落无不充斥着种类繁多、数量庞大的数据,这些数据不仅包括传统的结结构型数据,还包括如网页、文本、图像、视频、语音之类的非结构型数据。大数据的兴兴起和研究热潮将数据科学推到风口浪尖。
什么是数据科学?它和已有的信息科学、统计学、机器学习等学科有什么不同?作为一门新兴的学科,数据科学依赖两个因素:一是数据的广泛性和多样性;二是数据研究的共性。现代社会的各行各业都充满了数据,这些数据的类型多种多样,不仅包括传统的结构化数据,也包括网页、文本、图像、视频、语音等非结构化数据。数据分析本质上都是在解反问题,而且通常是随机模型的反问题,因此对它们的研究有很多共性。例如,自然语言处理和生物大分子模型都用到隐马尔科夫过程和动态规划方法,其最根本的原因是它们处理的都是一维随机信号;再如,图像处理和统计学习中都用到的正则化方法,也是处理反问题的数学模型中最常用的一种。
数据科学主要包括两个方面:用数据的方法研究科学和用科学的方法研究数据。前者包括生物信息学、天体信息学、数字地球等领域;后者包括统计学、机器学习、数据挖掘、数据库等领域。这些学科都是数据科学的重要组成部分,只有把它们有机地整合在一起,才能形成整个数据科学的全貌。
从上述中可以看到,数据科学的过程对于实现数据科学至关重要,一个典型的数据科学项目可分为如下几个阶段:
(1)定义业务问题
阿尔伯特·爱因斯坦曾经引用过“凡事尽可能简洁,但不能太过简单”,而这句话也正是定义业务问题的核心。问题的表述需要事情的发展历程和所在场景,需要建立明确的成功标准。几乎在所有的企业中,业务团队总是繁忙无比,但是这并不意味着他们没有需要解决的挑战。头脑风暴会议、研讨会和访谈可以帮助揭开任何问题的面纱并提出可能的解决方案或者假设。而对于如何定义业务问题?可参考下例:
Ø一家电信公司由于其客户群减少而导致其收入同比下降。面对这种情况,业务问题可能被定义为:
该公司需要通过瞄准新的细分市场和减少客户流失来扩大客户群。
(2)分解为机器学习任务
业务问题一旦定义好之后,就应该分解为机器学习任务。例如上述的示例,如果该公司需要通过瞄准新的细分市场和减少客户流失来扩大客户群。该如何分解该业务问题为机器学习任务呢?下面是一种分解的示例:
ü将顾客的流失减少x%。
ü为有针对性的营销确定新的客户群。
(3)数据准备
一旦确定了业务问题并将其分解为机器学习问题,就需要开始深入研究数据了。对于数据的理解应该明确的针对当前问题,因为当前问题能够帮助制定合适的数据分析策略,并且要注意的是数据的来源、数据的质量以及数据的偏差等。
(4)探索性数据分析
“当宇航员进入宇宙时,他们是不知道宇宙中有什么的。”同样的,数据科学家在开始对数据进行分析时,对于数据中隐含的特征等也都是未知数,他们需要穿过数据的表象去探求和开发新的数据涵义。探索性数据分析(Exploratory data analysis,EDA)是一项令人兴奋的任务,可以更好地理解数据,调查数据中的细微差别,发现隐藏模式,开发新功能并制定建模策略。
(5)模型化
探索性数据分析之后,将进入建模阶段。这个阶段中,会根据特定的机器学习问题,选择不同的算法,而机器学习算法有很多,耳熟能详的有回归、决策树、随机森林等等。
(6)部署与评估
最后,部署开发的模型,并且建立持续的检测机制,观察他们在现实世界中的变现并据此进行校准和优化。
在数据分析、挖掘、机器学习或是可视化实现之前,做好相关的数据清洗工作意义重大。不过,请牢记,这是一个迭代的过程,因为在项目中我们可能需要不止一次地执行这些清洗操作。此外,我们所采用的挖掘或分析方法会影响清洗方式的选取。我们可以认为清洗工作包含了分析方法所能决定的各种任务,这有可能是交换文件的格式、字符编码的修改、数据提取的细节等。
数据清洗与数据收集和存储的关系也十分密切。这意味着你得收集原始数据,对它们执行存储和清洗操作,之后再把清洗过的数据保存下来,接下来收集更多的数据,清洗新的数据并把清洗结果与前面处理完的结果数据结合起来,重新进行清洗、保存等操作,反反复复。正因为这个过程非常复杂,所以我们要么选择牢牢记住曾经做过的处理,并记录下那些可以根据需要反复执行的步骤,要么把工作的全部状况告知其他相关人员。