||
数据分析的门槛在降低,希望你能及时意识到。
今天是本学期《数据库系统原理》的最后一课。学生们完成了数据分析项目,依次上台做展示。
看到连计算机扫盲课都没有上过的文科生,经过一个学期的学习,能够自己从网上找数据,导入关系型数据库,用 SQL 来做查询,直到以数据来回答自己感兴趣的问题,我觉得很开心。
在这个大数据时代,我们每个人的工作,都或多或少要跟数据打交道。小到记录自己的账本,大到用数据辅助企业战略决策。用好数据,可以帮助你所在的团队,和你个人增值。
有价值的数据,许多都存储在了各种数据库里面。想要使用好它们,只会用 Excel 或者 Access 是不够的。一般来说,查询它们的最好方式,是学会各种查询语言。最常见的,就是 SQL。
在著名的 Python 课程 Programming for Everybody 里面,主讲教授密歇根大学的 Chuck (Dr. Charles Severance) 认为,SQL 语言是编程语言中最简单的一种。
但是,我们还是现实一点。
许多时候,你有分析数据的冲动,然而并非人人都有时间和意愿去学一门 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 表格,就能看到全部学生记录信息。
如果我们只关注其中一部分学生的情况,可以选择上方紫色的 “Filter”(过滤)按钮。
上图左侧就是我们想看的结果了。
但是我们会觉得,“一幅图胜似千言万语”。
怎么办呢?我们选择右下方,以 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)。
然后,你需要选择数据库。
还得选择一个初始的表格。
这里我们需要选择 Apply 表格。
下面我们设置一下过滤条件。显然,既然考虑录取分数,那么就得找出那些被录取的人。
于是我们在 Filter 一栏里面点击。
选择 Apply 表格。
然后我们就可以根据学校来查看最低录取分数了。
这里我们填写绿色的 Summarize 。
通过简单的点选,你现在已经有了所有需要设置的信息。
好,我们执行吧。选择 Visualize 。
从这张图里,我们可以看到,Berkeley 录取学生的 GPA 线最高。 Cornell 和 Stanford 并列最低。
由此看来,名校看重的,绝不仅仅是 GPA 成绩啊。
是吗?
这个作为思考题,欢迎你把自己的答案写在留言区里面和大家交流。
本文我带你用一个极简的数据库样例,尝试了不写任何一句 SQL 代码,对数据库进行过滤、分析、统计、可视化,以及表间关联查询。
你可能会觉得,这么简单的数据,我拿眼看心算,都比你这方法快!
没错,但是想象一下,如果你的每张表里面,数据量都多上 1000 倍呢?
我们要学东西,就需要掌握这种能规模化应用的技能。虽然初始学习的时候觉得有些繁琐,但是真正帮你应对大规模数据结果的时候,你就能尝到掌握它的甜头了。
祝数据分析愉快!
读过本文,如果觉得有收获,请点赞。
要读更多的文章,微信关注我的公众号 “玉树芝兰”(nkwangshuyi)。别忘了加星标,以免错过新推送提示。
如果本文对你身边的亲友有帮助,也欢迎你把本文通过微博或朋友圈分享给他们。
你可能也会对以下话题感兴趣。点击链接就可以查看。
题图:Photo by National Cancer Institute on Unsplash
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-10 18:17
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社