Matrix 是多数派的诗歌创作街道社区,他们提倡撷取真实世界的产品新体验,有商业价值的实战经验与思索。他们会定期挑选出 Matrix 最高质量的该文,展现源自使用者的最真实世界的新体验和看法。
该文代表译者对个人见解,多数派仅对标题和排印略加修正。
在那个大统计数据黄金时代,他们每一人的组织工作,都多多少少要跟统计数据关系密切。小到历史记录自己的账单,大到用统计数据远距企业战略部署。用好统计数据,可以协助你所处的项目组,和你对个人产品服务。
有用的统计数据,很多都储存在了各式各样统计资料库里头。想使用好它,只会用 Excel 或是 Access 是不如的。一般而言,查阅它的最合适方式,是专业委员会各式各样查阅词汇。最常用的,就是 SQL。
在知名的 Python 专业课程 Programming for Everybody 里头,开讲副教授宾夕法尼亚理工学院的 Chuck (Dr. Charles Severance) 认为,SQL 词汇是C词汇中最简单的一种。
但是,他们还是现实生活一点。
很多时候,你有预测统计数据的贪婪,不过绝非天下人都有时间和意向去学两门 SQL 专业课程,来完成日常生活组织工作中的统计数据查阅、预测和建模组织工作。
远距工具
好在,技术的发展,常常把很多原本从业者就可以做的事,变为德国大众都能做的。例如本代电动汽车,比如智能手机上的照相机应用领域,再比如我那时要给你如是说的 Metabase。
Metabase 的 Slogan ,是那个模样的:
翻译过来,重点就是:
所有人都能用
可以容易表达你的问题
使你能从统计数据中学习
安装
他们来尝试一下 Metabase 这款远距工具,它完全可以适用于项目组协作,因为它提供了 Docker 镜像、AWS 和 Heroku 等方便的云端使用方式。
为了如是说的简单与方便,这里我只给你如是说一下单机版的安装。其余的应用领域形式,你可以学习本文之后,自己继续挖掘。
因为我自己使用的是 macOS ,所以这里选择 Mac 下面编译好的安装文件就行。
如果你使用的是其他系统,比如 Linux 或是 Windows ,安装也不麻烦。只需要点击「其他平台」按钮,下载一个 jar 类型文件。只要你在系统里头安装好 Java 运行环境,就可以直接双击该文件运行了。
这里以我电脑上的 macOS 系统为例。打开下载的 dmg 文件后,把可执行文件拖入到「应用领域」文件夹,就可以了。
第一次运行的时候,可能需要一些时间初始化。
当出现以下界面的时候,就意味着准备就绪了。
请你点击上图里头的蓝色按钮,开始设置。
他们需要输入一些基本注册信息。
之后,选择他们需要连接的统计资料库。
注意,这里有很多选项可以选择。这些选项,基本上涵盖了市面上常用的主流统计资料库类型。
为了方便起见,这里他们使用「麻雀虽小五脏俱全」的 SQLite 统计资料库。其他类型的统计资料库,你可以稍后自己尝试。
我用的样例,是 Stanford 统计资料库开放专业课程使用的 colleges.db 。我自己上课的时候,一直用它作为基础样例演示给学生。
设置完毕之后,下面需要注意,有个统计数据统计选项。 Metabase 是在询问你,是否允许把你的使用行为统计信息发给它,协助改进。
如果你乐于撷取,可以保持原本设定。若对自己的隐私比较注重,不用纠结了,可以关闭该选项。到这里,安装和设置就算完成了。
浏览
下面他们看看有哪些统计数据表可以查看。
那个统计资料库里头包含了 3 张表格,分别是:
Student 学生信息
Apply 申请信息
College 招生学校信息
他们选择其中的学生表格。
Metabase 默认给了他们一些基本的描述性统计结果。比如最重要的,是一张表格到底有多少行。这里样例 Student 表里,一共有 12 个学生的历史记录。还没完,往下翻, Metabase 还为他们自动生成了一些其他统计结果。
首先是学生的学号分布。
当然,由于学号无非是个独特数字而已,所以那个统计没有什么用处。但下面这张,就不一样了。这是学生的 GPA 分布,可见,大部分学生的成绩高于 3.6 分。统计数据集不是个均匀或是正态分布。
下面这张图,反映了学生源自的高中学校大小。看得出来,大部分学生还是源自于学生人数较多的学校。源自小而精的高中学生人数,相对较少。
下面这张图,统计了学生姓名。有意思的是,你可以清楚看到,有重名的学生。
如果你不满足于只看这些统计信息,而希望查看原始统计数据。那么可以点击「Browse Data」按钮,选择 college 统计资料库。
然后选择其中的 Student 表格,就能看到全部学生历史记录信息。
预测
这里,所有的条件,都可以通过选择和输入数值来完成,不需要编程。他们选择过滤结果只保留 GPA 大于 3.5 的学生。下图左侧就是他们想看的结果了。
但是他们会觉得,「一幅图胜似千言万语」。怎么办呢?他们选择右下方,以 GPA 作为分组依据,然后点击左下方的 Visualization (建模)按钮。
可见,在成绩大于 3.5 的学生里头,有 4 个是 3.9 分的成绩。这部分学生里头,学霸占的比例不小啊。
他们还可以换一种分组方式,这里他们使用高中学校人数作为分组依据。然后再次进行建模。于是你可以看到,GPA 3.5 分以上的学生,源自于人数规模 1000 的高中最多。
点击建模按钮,他们可以选择不同的图形来表示。这里他们选择饼图。
你觉得在那个问题里,柱状图和饼图,哪个更适合描述咱们的过滤预测结果呢?
地图
下面他们来看看,如何对统计数据进行地理信息建模。也就是,画个地图出来。这里,他们选用的,是其中 College 这张表格。这张表格里头,包含以下信息:
他们打算看看,不同州理工学院的录取人数。做法很简单,还是点击上图中显示的 Visualization ,然后选择图形选项最右下方的「地图」(Map)。
修正 Metric field 为 Enrollment 。然后 Region Field 为 State (州)。
于是你就能看见下面这样的地图了。
有意思的是,Metabase 对于州的简写方式也能正确识别,并且把它标记在地图上。而且根据汇总招生人数的多寡,还自动选择了不同深浅的颜色。
关联
下面他们来看看更实用的预测手段 — 关联查阅。
从一张表里,他们已经可以预测出不少东西了。但是更多情况下,他们希望采用多张表格联合在一起,从而能从中挖掘出洞见(Insights)。
比如这里我给你提一个问题:
不同理工学院录取最低 GPA 是多少?
那个问题,你若是只用一张表,是无非回答的。因为 Apply 表里头虽然有录取决策信息,但是不包含 GPA;
Student 表里头虽然包括了 GPA,但你不知道学生报了哪所学校,以及是否被录取了。
让他们点击上方菜单栏里头的「问问题」(Ask a question)按钮,然后从下图中选择「定制问题」(Custom Question)。
然后,你需要选择统计资料库。
还得选择一个初始的表格。
他们选择 Student 表。
然后选择 Join data (关联统计数据)。
这里他们需要选择 Apply 表格。
然后会让他们选择用哪个列进行关联。毕竟,如果我们把张三的学生信息关联到李四的录取信息历史记录上,是没有意义的。
他们观察一下,发现在 Student 和 Apply 中,都出现了学生的 ID (sID),这是学生的唯一标识。就用它好了。
下面他们设置一下过滤条件。显然,既然考虑录取分数,那么就得找出那些被录取的人。
于是他们在 Filter 一栏里头点击。
选择 Apply 表格。
然后从中选择 Decision (录取决策)。
因为这里只有两种取值选择。所以他们可以选择 Y (录取)。
然后他们就可以根据学校来查看最低录取分数了。这里他们填写绿色的 Summarize 。
他们感兴趣的是最低录取分数,所以可以从中选择 Minimum of 。
然后选择 GPA 作为最小值选择列。
还没完。因为他们是需要按照学校来分别计算的。所以在 by 后面选择 cName 。
通过简单的点选,你现在已经有了所有需要设置的信息。
好,他们执行吧。选择 Visualize 。
从这张图里,他们可以看到,Berkeley 录取学生的 GPA 线最高。 Cornell 和 Stanford 并列最低。由此看来,名校看重的,绝不仅仅是 GPA 成绩啊。是吗?那个作为思索题,欢迎你把自己的答案写在留言区里头和大家交流。
小结
本文我带你用一个极简的统计资料库样例,尝试了不写任何一句 SQL 标识符,对统计资料库进行过滤、预测、统计、建模,以及表间关联查阅。
你可能会觉得,这么简单的统计数据,我拿眼看心算,都比你这方法快!
没错,但是想象一下,如果你的每张表里头,统计数据量都多上 1000 倍呢?
他们要学东西,就需要掌握这种能规模化应用领域的技能。虽然初始学习的时候觉得有些繁琐,但是真正帮你应对大规模统计数据结果的时候,你就能尝到掌握它的甜头了。
祝统计数据挖掘愉快!