写点什么

游戏夜读 | Scikit-learn 的 2018 自述

用户头像
game1night
关注
发布于: 2020 年 05 月 16 日

R 和 Python 的交谊舞


曾几何时,数据分析入门的一大讨论就是 R 和 Python 的选择。


当统计学家连上了互联网的那刻起,这种选择一直就存在,只是主演们在换。


上一代的主角,一方是 R 和 S。大家选择 R 是因为它是免费的解决方案,又能用,还有一批人维护更新,而且下载即可。概括起来,就是“开源大法好”。另一方是 Matlab 和 Python。可能会有很多的异议,不过这里也只是举个见识范围内的例子,愿意无条件接受任何的反驳。近年,Python 的排名越来越高。


站在 2019 年,R 和 Python 主演的选择大戏有结局了吗?


一条蟒蛇跟一个字母的故事,编剧被寄了刀片,剧情搁浅。没有结局的原因很简单,因为两个都是开源的,所以“诸事不决,选开源”的策略失效了。那该如何有理有据地抨击一款正被广泛使用的工具呢?


请务必从用户需求下手。


那就聊一聊机器学习模块,算法,模型,策略,评估,可视化……那些跟人工智能有关的需求。


Scikit-learn 的初心是…


这里应该回忆一遍 Scikit-learn(sklearn)是如何成长为 Python 的机器学习库的,哪怕是最快速的带过:2007 年开始,距离 2018 年已经过去 11 年。(其他的废话准备另写一篇《Scikit-learn 迎来 0.21 之前》。)


Python 在数据科学领域的快速发展,归功于那些频繁提交 commit 的家伙们。


但夜以日继,不辞辛苦的,还有很多人,劲敌永远存在。翻开 sklearn 的文档,会发现除了主页常设的分类、回归、聚类、降维、模型选择、数据处理这六大主题之外,还有一个有关这个项目本身的 Roadmap。


如果没有人关心这个项目的里程碑,会怎么样?


过去的 11 年里,机器学习的世界变化很多,但影响最微妙,可能也是“最致命”的,是开源贡献者的身份产生了变化。跟十年前那会儿很不同。


Statement of purpose: Scikit-learn in 2018

  • A more subtle change over the last decade is that, due to changing interests in ML, PhD students in machine learning are more likely to contribute to PyTorch, Dask, etc. than to Scikit-learn, so our contributor pool is very different to a decade ago.


在这最新一份的《Scikit-learn 项目目标自述 2018》里,还可以看到 sklearn 不变的初心:数据处理和机器学习的经典工具集合。


如今,机器学习博士生们“更乐意去为 PyTorch、Dask 等添砖加瓦”。sklearn 也更开放,会提供更多的接口便利,也不排斥互通。


写在文档里的可能是实现不了的诺言,或者谎言。关于这一点疑虑,sklearn 的开发者这样宣言:资源有限,所以列清单不等于许下承诺,而是指引我们前行的航标,也是我们急需帮助的不足之处。


争吵不是真相,真理落在实处


为什么不是 Scikit 了呢?又为什么是 PyTorch、Dask 呢?时代变迁,新的角色不断涌现,又会有一大波选择的大剧等待上演。选择不尽,争吵不休。


算法层出不穷,包或者模块的名字也在变化,甚至框架也可以有很多种选择,这个世界正在对数据科学领域开放大量的人力资源和发展机会。


scikit-learn 在 2007 年问世时,NumPy、SciPy 和 matplotlib 是不是在颤抖?有机会真该去看看它们那些年的项目文档,可能有精彩的故事。


选择开源,就注定不能一劳永逸。而拒绝开源,只会被潮水淹没。Scikit-learn 的 2018 自述,讲述了开源的波折和信念,言辞恳切,不失风度。


文/良宵听雨。授权“游戏夜读”发表。

发布于: 2020 年 05 月 16 日阅读数: 49
用户头像

game1night

关注

烦请督促我的游戏功课喔! 2017.04.06 加入

计划坚持创作以“游戏夜读”为主题的短文,并以这些杂文作为连载公开发布。烦请大家一起督促我的游戏功课喔!欢迎关注和阅读,如有不足,可直接留言批评,会继续努力!

评论

发布
暂无评论
游戏夜读 | Scikit-learn的2018自述