徐葵
Data Scientist
7 个月前
大约需要 17 分钟阅读
GitHub数据分析
工欲善其事,必先利其器
数据科学一直是最近几年的热门词语,大到我们耳熟能详的大数据、人工智能、AI,小到一个公司内部的数据分析和管理,都离不开数据科学。
数据科学研究数据以提取对业务有意义的洞察。这是一种多学科的方法,可将数学、统计数据、人工智能以及计算机工程等领域的原则和实践结合起来,进而分析大量数据。此分析可帮助数据科学家提出和回答如下问题:发生了什么、为什么发生、将发生什么以及结果可以做什么。
可以说,数据科学正在用更科学的方式总结各行各业过去的经验,并预测和指导各行业未来的发展,加速了整个社会科学化的进程。
为了达到研究数据科学发展的目的,我们先梳理出一套方法论:在程序员最喜欢的集结地GitHub上,研究数据科学家最喜欢的数据科学分析工具是什么,再从该数据分析工具入手,从其发展趋势看整个数据科学的发展趋势,从宏观到细节,我们再看看数据科学家们最喜欢用数据科学工具实现哪些类别的数据分析,并从这些类别的分析中管窥一二。
GitHub平台
GitHub是一家成立于2008年的互联网公司,当时还叫做Logical Awesome,其创始人是普雷斯顿-沃纳(Tom Preston-Werner)、万斯特拉斯(Chris Wanstrath)和海耶特(PJ Hyett)。
2005年,一群来自世界各地致力于开源Linux内核开发的程序员们创造了Git这一优秀的代码版本管理软件,利用其无与伦比的代码分支管理能力维护Linux内核的庞大代码库,进行着并行开发工作。
看到了Git的优异表现,同时又发现市场上并没有合适的Git托管服务,普雷斯顿等合作开发了供居住在世界各地的程序员们提供在线代码托管服务。他们起初只是把这个项目当成一个周末的副业,没想到它却实实在在的改变了人们编写、共享代码、团队协作甚至思考的方式。GitHub平台的测试版本一经发布,很快在程序员中间流行开来,几个月后许多创业公司把他们的代码库从本地迁移到了GitHub平台,人们甚至开始觉得就这样免费使用平台的代码托管服务于「良心上都过不去」,纷纷写信要求付费。自然而然的,公司也从提供基本免费服务的基础上在付费服务中开始获得收益。
GitHub商标上的吉祥物是一个八爪猫。它拥有着像八爪鱼一样的触手,完美象征着代码树上的不同分支。
截止到2022年6月,GitHub平台上已经注册有超过8300万的程序员和超过2亿的代码仓库,其中2800万个是可以公共访问的代码仓库。程序员们在上面管理代码,分享、协作和交流各种技术问题,这是个名副其实的世界最大的程序员交友社区。
知道了GitHub的历史,相信你就知道为什么我们选择从GitHub入手分析数据科学了。
数据科学项目
人类数据呈指数级增长,这在很大程度上要归功于高效且具有成本效益的大规模处理和存储技术的出现。新兴技术诸如边缘计算(Edge Computing)、5G 网络、物联网(IoT)、人工智能和机器学习(AI/ML)、增强现实和虚拟现实(AR/VR)、区块链(Blockchain)以及机器人技术(Robotics)的出现,又大大扩展了信息和数据的产生和消费。与此同时,数据科学家(Data Scientist)这一职业也浮现在人们眼前。
事实上,数据科学(Data Science)并非是一门全新的学科。早在 1962 年,图基 (John W. Tukey)在他的《数据分析的未来》一书中就首先提出了这样的概念,这也成为了数据科学史的里程碑。值得一题的是,他不但是一位影响力巨大的统计学家(Statistician),甚至还是计算机术语中二进制数字单位「位」(Bit)的创造者。
数据科学家的职责,是从数据中提取具有价值的信息,并解释数据和洞察的意义。这既需要掌握统计学、计算机语言和机器学习的工具和方法,也需要具备一定商业概念和逻辑知识,懂得阐述和分享对数据的认知,甚至需要对人性的理解。
横跨众多的知识领域,对数据科学家而言,优秀的工具是必不可少的。Jupyter笔记本(Jupyter Notebook,以下简称计算笔记本)就是当下最流行的一个集数据获取、处理、分析、建模、可视化以及互动性展示的利器。正因为其使用便利、互动性强的特征,为众多数据科学家采纳并应用于数据科学的日常工作中。
分析笔记本代码仓库
在GitHub上我们能找到几乎所有的编程语言类型。而众多的数据科学家和数据科学的爱好者们创建了大量的计算笔记本的代码仓库。这款数据分析工具的优势在于拥有笔记本式的编码体验,而且一段代码可以对应一段输出,输出可能是数据表格形式,也可能是图表形式。就这样在一步步的编程和数据调试过程中,数据科学家可以很方便地缕清思路,并逐步调试出可靠地数据结论。所以我们正好可以通过对这些代码仓库中计算笔记本的分析,从一个侧面了解数据科学在这些年的发展历程。
通过使用jupyter-notebook
这一关键字对GitHub平台上的代码仓库进行搜索过滤,就能很快获得所有可以公共访问的计算笔记本代码仓库。我们获取了这些代码仓库的所有字段,诸如name
、owner
、created time
、fork number
、stars
等等。当我们把这份数据根据创建时间和数量绘制成一条成长曲线,我们就会看到,GitHub平台上的第一个计算笔记本代码仓库出现于2008年,此后的几年大约每年有3倍左右的数量增长,并没有太亮眼的表现。而从2015年开始,计算笔记本代码仓库的创建数量突然开始呈现指数型的增长,可以看出业界对于数据科学的热度在快速升高。到了2022年11月,在GitHub平台上当年新创建的计算笔记本代码仓库数量更是一举超过了100万!每个月创建的项目
如此大量的计算笔记本仓库是不是同一批人创建的?正如我们下图中所见,计算笔记本的创作者也在15年到22年间发生了指数型的增长,相信这也是各行各业更加注重数据分析在企业内的应用,以及互联网巨头们看到市场需求后不断在市场中培养符合客户需求的专业化数据科学人才的结果。
每年首次创建项目人数
看完了计算笔记本的整体趋势和数据科学家们发展的整体趋势后,我们打算从样本数据的各类标签入手,统计各类标签代码仓库的前十代码仓库各有哪些。
总体评价数最高的前十个代码仓库
总体订阅者最多的前十个代码仓库
总体创建分支最多的前十个代码仓库
不难发现,排名前列的都是像微软、谷歌之类大厂针对数据科学或者机器学习的教程或练习类代码仓库。这既说明了大厂在看到趋势之后积极培养数据科学方向人才,也说明说明了程序员对数据科学抱有极高的热情,「活到老,学到老」在程序员的世界里是个不变的真理。
在GitHub平台上的代码仓库中,创建者对代码仓库打上的主题(Topics)标签,它们记录了每个代码仓库的重要特征信息。下面我们通过代码仓库的主题信息来一窥究竟,看看计算笔记本都被应用在哪些方向做数据科学分析。
主题标签使用的是描述性词语或者短语,我们可以通过词云(Word Cloud)分析这一有趣方式,直观的描绘出不同时期数据科学关注热点的变迁。词云可以给出两方面的信息,一方面是词语的丰富程度,代表标签种类是否丰富;另一方面是标签的大小,越大的标签在所有代码仓库的标签数据统计中,所占的统计比重越重。
2011年计算笔记本标签相当单一,我们可以看到词云图上零零散散有一些标签信息,人们仅仅将其用于一般性的Python编程环境,甚至在当时,计算笔记本的发展也是由于Python这种代码语言的发展所带动的,我们难以看到计算笔记本作为数据科学分析工具的特性。
得益于海外高校内学科教学的推广和使用,2012年用户开始将计算笔记本用于神经科学、天文学以及天体物理学相关数据的分析和展示,也正是计算笔记本在高校内的推广,让课堂效率得以提升,学科与数据科学结合的教学方式得到推广。
2015年计算笔记本仓库开始爆发性增长,结合当时工业界的发展来看,其背后的主要推手就是机器学习、神经网络以及深度学习等人工智能相关领域越发被关注,并且成为了各大资本追逐的方向。这之后的几年,机器学习、神经网络、深度学习一直在词云图中占有一席之地,并且其关键词一直保持着较大占比。
到了2022年,无论是数据科学还是人工智能,算法、框架和各种应用场景纷纷落地于计算笔记本平台,呈现出百花齐放的态势。可以关注到,其中机器学习一直保持高位占比。
哪些机器学习框架比较流行呢?我们尝试着统计在代码仓库主题标签中包含的框架信息:
机器学习项目框架堆叠图
有趣的是,2020年4月几个主流的Python数据科学和机器学习的框架新增代码仓库数量都出现了一个增长的峰值。巧合的是,2020年3月正好是世界卫生组织宣布新冠疫情进入全球大流行(Pandemic)的时期。而作为亲历者和绝不放弃对数据的探索的数据科学家们,做了什么呢?
我们进一步对计算笔记本代码仓库的描述字段进行分析,搜索其中包含新冠疫情关键字的代码仓库。
关于新冠的项目数量
果然,从2020年4月起,当月新增的和新冠疫情相关的计算笔记本的代码仓库数量陡增到1600个之多。那么,数据科学家们又在关注新冠疫情的哪些方面呢?我们不妨来一个代码仓库评价数量的前10排名:
代码仓库评价数量的前10排名
当查看那些排名靠前的代码仓库时,我们发现许多计算笔记本项目都是根据已有报道的新冠感染者数量的来进行机器学习建模,识别相关的趋势模型,并用来预测其趋势和可能的变化。
所以,当我们回想起那段时间在网络上看到的各种各样的新冠疫情的预测,就能明白是数据科学家和爱好者们的成果啦。
但这还远远不是数据科学家所期望做出的贡献!关于新冠疫情的评价最高的计算笔记本代码仓库是关于新冠患者肺部X光照片的数据集,数据科学家利用计算笔记本对这些图片进行图像识别和机器学习的建模,以期望获得最佳的识别率。这项工作将帮助医学工作者们快速识别和发现新冠患者的病症,提高医疗机构的效率,并通过机器学习得到的数据极大的推动相关医疗科学研究的进展。我们有理由相信,虽然新冠疫情在全世界范围内发展迅速,但是人类也在尽全力去寻求办法与之抗争,各种新的防疫物资、治疗方案和疫苗的诞生,背后是全世界全行业的通力合作,这中间也少不了数据科学家的极大贡献。
从GitHub平台上计算笔记本代码仓库的数据分析中,我们从整个行业的一隅窥视到了数据科学的蓬勃发展,更看到了计算笔记本作为一个天生的数据科学开发利器,在短短十几年中承担了越来越重要的任务和使命。究其原因,计算笔记本的易用性和开放性是其不可比拟的优势。它降低了传统行业进入数据驱动时代的门槛,使得从沉睡的数据中挖掘价值并转变成未来的增长动力成为可能。
徐葵
Data Scientist
复旦大学理工男,数学本计算机硕。多年来就职于企业服务和互联网的国内国际大厂,从初级码农做到产品负责人再到高级产品经理,而后扭身为数据分析师再干到数据科学家,顺应着行业潮流的变化,通过一条漫长而曲折的道路(报表、商务智能再到机器学习)找到了数据科学这一真爱之地,正所谓「路漫漫其修远兮,吾将上下而求索」。