数据科学的关键事件

十月份在公司的技术中心分享了《数据思维、技术到商业价值》,从数据科学的重要基石之一统计学开讲,帮大家串了一下数据科学到底是什么东西。其中有一页幻灯片,讲到我心目中数据科学 milestone 的时间轴,这里分享给大家,以及怎么使用 R 包绘制。啥也不说,先看图:

Information entropy, 1948

由信息论之父 C. E. Shannon 在论文《A Mathematical Theory of Communication 》提出。Shannon 借用热力学的原理解决了 Uncertainty 的测量性问题。(太早,故未在时间轴上体现)

The Future of Data Analysis, 1962

John W. Tukey 也是个人最为崇拜的统计学家(除了祖师爷Fisher以外),Tukey 讨论了两个有意思的问题:

  1. 统计学和数据分析的关系
  2. 统计学和计算机学的关系

大家有兴趣可以搜一下原文,感受一下 56 年前大佬的思考深度。

Data science, 1974

Data science 的概念是 Peter Naur 在《Concise Survey of Computer Methods》首次提出,Peter Naur 是计算机科学家,图灵奖的获得者。 在这本书里,Peter Naur 给了偏计算机领域的数据定义:

Data is a representation of facts or ideas in a formalized manner capable of being communicated or manipulated by some process.

Peter Naur 对 computer science 这个词很有意见,建议应该叫做 datalogy 或者 data science,当然和现代 data science 的定义还是差别很大。

Two-Way Communication, 1975

由日本邮政和通信省主导,在这次信息社会普查发现:信息(数据)的传递不是单向的,双向(个性化)的是未来的趋势。

Exploratory Data Analysis, 1977

这个词学统计的应该非常清楚是什么意思,不多讲。Tukey 在 1977 年就提出来这个观点,让我们这些后辈只有佩服的份。

Business Intelligence, 1989

Howard Dresner 赋予了商业智能以现代概念:

concepts and methods to improve business decision making by using fact-based support systems

The First Database Report, 1992

Crystal Reports(水晶报表),较晚一些从事数据科学的童鞋可能没听过这款产品。想想那是 1992 年,能够在 Windows 上通过连接数据库形成一个数据报告是多么酷的事情。

The World Wide Web Explodes, 1995

互联网技术和应用开始井喷式爆发,我们面临的以及需要优化的问题是人类社会前所未有的,同时提供给了数据科学更多的可能性。

Data Mining and Knowledge Discovery, 1997

聚焦在数据挖掘的权威期刊,包括基础理论、数据挖掘方法、数据挖掘算法、知识发现过程、应用等。Data mining这个词是表示了从大型数据库中提取信息之意。

S(ACM Software System Award), 1998

S 语言由贝尔实验室的 John Chambers 发明,在 1998 年被授予 ACM 软件系统奖。这是唯一的数据科学领域被授予奖项的系统,它永久的改变了人们分析数据的方式,是探索性数据分析的集大成之作。

Statistical Modeling: The Two Cultures, 2001

Leo Breiman 在该论文中提到:在使用统计模型从数据中提取结论的过程中有两种文化。一个假定数据是由一个特定分布模型生成的。另一个使用算法模型,并把数据结构看作未知的。统计学界普遍致力于仅仅使用针对数据的模型。这种投入产生了无意义的理论、值得怀疑的结论,并让统计学家无法触及大量现实问题。算法模型,在理论与实践中,在统计学之外快速发展。它既可以被应用于庞大复杂的数据集,也可以在小数据集上建立精确信息量大的模型。如果我们这个领域的目标是使用数据解决问题,那么我们需要摆脱对纯粹基于数据模型的依赖,并使用更多样的工具。

Hadoop, 2006

离线分布式计算的基石,且免费,对硬件的要求不高。因为它的存在,所有机构都可以用较小的成本来处理海量的数据。记得 2011 年之后,国内讲大数据如果不讲 Hadoop 就感觉非常不专业的样子。

Data scientist, 2008

Jeff Hammerbacher(Facebook) 和 DJ Patil(LinkedIn) 开始使用数据科学家来描述他们的团队以及工作。从此以后,数据科学家这个名词开始广泛地被提起。

NOSQL, 2009

非关系型数据库,其口号是:

select fun, profit from real_world where relational=false;

Deep Learning, 2015

深度学习其实并不是什么新鲜技术,人工神经网络在 20 世纪 50 年代就出现了,但是受限于算力和要求的数据量,神经网络发展一直相对缓慢。2015 年随着 Google 在语音识别领域精度的极大提高(几项比赛的革命性效果),深度学习再一次火了起来。

附代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
library(lubridate)
library(tidyverse)
library(ggplot2)

x <- tribble(
~event, ~date, ~type,
'The Future of Data Analysis', 1962, 'concept',
'Relational Database', 1970, 'system',
'Data science(Peter Naur)', 1974, 'concept',
'Two-Way Communication', 1975, 'concept',
'Exploratory Data Analysis', 1977, 'concept',
'Business Intelligence', 1989, 'system',
'The First Database Report', 1992, 'system',
'The World Wide Web Explodes', 1995, 'system',
'Data Mining and Knowledge Discovery', 1997, 'concept',
'S(ACM Software System Award)', 1998, 'system',
'Statistical Modeling: The Two Cultures', 2001, 'concept',
'Hadoop', 2006, 'system',
'Data scientist', 2008, 'concept',
'NOSQL', 2009, 'system',
'Deep Learning', 2015, 'system',
)
positions <- c(0.5, -0.5, 1.0, -1.0, 1.5, -1.5)
n <- nrow(x)
event <- x |>
mutate(
date = as.Date(paste(x$date, '/01/01', sep ='')),
position = rep_len(positions, length.out = n)
)

year_dat <- data.frame(
date = seq(from = as.Date('1960-01-01'), to = as.Date('2016-12-31'), by = "1 year")
) |>
mutate(
year = format(date, "%Y")
)
year_dat$year[(1:nrow(year_dat)) %% 2 == 1] <- ''

ggplot(data = event) +
geom_segment(aes(x = date, y = 0, xend = date, yend = position)) +
geom_hline(yintercept = 0, color = "black", linewidth = 1) +
geom_label(
aes(x = date, y = position, label = event, color = type),
show.legend = FALSE
) +
geom_point(aes(x = date, y = 0, color = type),
size = 3, show.legend = FALSE
) +
geom_text(
data = year_dat,
aes(x = date, y = 0, label = year), angle = 45, size = 3.5, vjust = 3
) +
theme_void()