愚见,下面的信息,是需要首先明晰的。
拙作《跟老齐学 Python:数据分析》一书中,列出了数据科学的发展简史,从中能体会到人类对数据的研究和应用。随着技术的发展,本质上是社会生产力的发展,数据驱动决策的观念越来越深入人心(此处推荐观看电影《点球成金》)。
都在谈论“数据科学”,那么什么是数据科学?需要有一个明确的说明。
对于概念性的东西,推荐参考“维基百科”或者某些经典著作。
下面的定义来自“维基百科”中的“数据科学”词条。
数据科学(英语:Data Science),又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。
阅读了词条的解释,算是对数据科学有了初步的感性认识。
根据经验,对于专有名词的英文词条解释与其对应的汉语说明,还是有差异的。因此,特别建议再阅读“数据科学”的英文词条:Data science。
Data science is an interdisciplinary field that uses scientific methods, processes, algorithms and systems to extract knowledge and insights from data in various forms, both structured and unstructured, similar to data mining.
Data science is a "concept to unify statistics, data analysis, machine learning and their related methods" in order to "understand and analyze actual phenomena" with data. It employs techniques and theories drawn from many fields within the context of mathematics, statistics, information science, and computer science.
显然,中文“数据科学”和英文的“Data Science”两个词条的内容,从信息量上看,还是有差别的。
根据 Data Science 中的说明,数据科学所处理的数据包括“Structured”和“Unstructured”(即“结构化的”和“非结构化的”)。数据科学中有一个重要环节,名曰“特征工程”,就是要将一些非结构化的数据转变成通常算法能够处理的结构化的数据。当然,这不是本课程要讲述的内容,本课程中使用的数据都是“结构化的”数据。
通常,科学是基础理论部分,它不直接产生价值,它的价值会通过工程体现出来。因此,对应着“数据科学”的应用,就是“数据工程”。那么“数据工程”是怎样的实施流程呢?
下图是综合了一些书籍所述和个人工作经验而来的。
图 数据工程流程
图的优势是能够把很多信息集中显示在眼前,给人以直观视觉化的体验,这也是“可视化”的优势。但是,图示也有明显的劣势,那就是表述上不严谨,容易产生歧义。比如面对一幅山水画,可能会有各种不同的理解;但是面对 F = ma 这个牛顿第二定律的表达式时,就只能有一种理解,不能仁者见仁智者见智。
因此,通常图示都要配说明。
这是“数据工程”的开始,从业者——数据工程师,必须对相应的业务有所了解,这也是数据工程师特有的市场价值之一(高工资是有道理的)。
理解商业问题,并非是成为业务高手,而是要能够从业务中梳理出与数据工程项目有关的环节,特别是将业务中某些问题转化为数据问题。
比如,某公司打算开发一套能够评价学生学习情况的软件系统,其中应用了所谓“过程性评价”的学习发展评价方式,要实现这种评价方式,就需要用到数据分析、机器学习的有关技能。
面对这个项目,首先问如下几个问题:
以上问题获得了明确答复之后,再考虑后续的工作,否则项目就成为了空中楼阁。
通过理解商业问题,把通常的业务人员习惯用的描述性语言,转变为具体的科学性语言,才能对某些环节作出“数据性”回复,实现“数据驱动决策”目标。
还是用前面的例子来说明,通常的教育工作者或者业务人员,会对“过程性评价”的结果这样描述:过程性评价能够对学生的成长发展提供指导,而不是一考定终身。
这种说法貌似容易理解,但里面充满了歧义,列出几项(包含但不限于):
显然,要落实所谓的“素质教育”,需要解决的问题真的太多、太复杂,绝非几句口号和几篇文章就能解决的。
若要从数据层面解决上述问题,就必须把有关数据的问题提炼出来,用准确的语言表述,然后考查业务是否能够支持这些问题。
数据收集和前述理解商业问题,两者之间是一个互动关系。研究收集数据的方法,也是对商业问题的再度理解。
此外,数据收集还包含着从某个数据集中获得数据的含义。这里所说的数据集,包括但不限于:
以上这些是常用的数据集。如何从这些数据集中读取到数据?需要的技能应该是:
假设已经通过某种合法的方式“不作恶”的途径得到了某些数据,接下来要做的是了解这些数据,主要通过以下两种方式:
这里就用到了“数据可视化”的技能。
然后就是“数据清洗”和“特征工程”,这是另外两个重要工作了,由于本课程聚焦在“数据可视化”上,这里就不详述了。但是,即便在这两个工作过程中,也会用到“数据可视化”的操作技能。
有了“训练好”的数据之后,根据商业问题的目标,可以从事两个方面的具体工作。
(1)数据分析
应用各种数据分析的方法,最终得到一份分析报告。
分析结果,除了用数字表达之外,可视化是不可避免的(又见“数据可视化”)。
(2)机器学习
机器学习是另外一个专门领域,目前正火热中。
通过机器学习算法,实现对数据的分类、预测和聚类等操作,在这个过程中,也难免要用“数据可视化”表达某种结论。
不论是机器学习,还是数据分析,其结果都要进行评估。
对于机器学习而言,有专门的模型评估方式。即便如此,用可视化的方式把结果表达出来,也是一种重要的手段。
根据评估结果,确定是否采用机器学习所获得的模型,亦或数据分析的报告是否被采纳。
以上是数据工程项目的基本流程,从中可知,“数据可视化”并不是流程中的一个独立环节,它是几个环节中必不可少的实现手段。
在实际中,做可视化工作的,除了数据科学从业者,还有美工,甚至还有其他人员,显然实现可视化的途径是多样的。那么,我们将学习什么类型的可视化呢?
请看下一课的内容。
本课介绍了“数据科学”的基本概念,并简述了“数据工程”项目的基本流程,从此工作流程可知,本课程的主题 “数据可视化”是数据分析和机器学习等方面的重要手段,在这些环节中都占据了一定的位置。