机器学习工具吐槽大会:回归模型连p值都不输出,文档描述惨不忍睹 | 你也来吐一波

栗子 发自 凹非寺
量子位 报道 | 公众号 QbitAI

同学,你用过的那些机器学习工具/库,有没有什么让你绝望的地方?

不是我要问,是一个叫做@Train_Smart的网友,在Reddit论坛开帖发问了:

提问的同时,少年还举出自己的经历,抛了个砖:

Pandas里的稀疏矩阵 (sparse matrices) ,到scikit-learn里就不支持了。我弄了好几个小时才发现,sklearn会把稀疏矩阵inflate起来 (30Mb>>20Gb) ,还完全没有提示。

很快,直击灵魂的问题引发了强烈的共鸣,楼下的小伙伴们纷纷说起自己的伤痛。16小时便有130条回复,Reddit热度达到200点。

吐槽大会

槽点有不少,最先受到强烈轰炸的就是:

统计学功能太匮乏

名叫@timmaeus的网友说:

我是从统计学转到机器学习来的,常常很吃惊,因为Python库输出的并不是我期待/我需要的那些指标:比如回归模型,就不会输出系数p值置信区间这些东西。

楼下有人 (@AuspiciousApple) 提供了一个解释:

这可能和思维方式有关系,就好像statsmodels也不会有切分数据集 (train_test_split) 这种功能一样。确实很烦,我主要用sklearn,还得把statsmodels召唤出来,就为了那些最基本的统计学信息。

众人群起而附议,场面十分壮观:

开心,在sklearn和statsmodels之间跳来跳去的,不是我一个人。(@luhem007)

我从R过来的,也感觉在Python里面搞个回归表格怎么这么难。(@Bardy_Bard)

我也是先学的R,后来常常想问为什么会设计出numpy/pandas这样的产品。(@po-handz)

我也是从R来的,发现自己要先创建一波定制的库,才能高效地用好那些已经有的库。(@leogodin217)

文档太不走心

网友@colonel_farts说:

TensorFlow文档整体都很让人崩溃。

楼下有人 (@jalagl) 帮他扩大了打击面:

所有文档都算上吧。我用的是PyTorch,也有很多不够好的地方 (没用过TensorFlow,不知道哪个更差) 。

很快就有补刀侠 (@geodesic42) 赶到现场:

PyTorch文档比TensorFlow还烂。

既然都说文档烂,具体烂在哪?

大体可以总结出三条,第一是描述不清楚

有些东西是真的很怪,而且一点也不直观。比如有的函数,名字本身已经很奇怪,描述还是“it does the thing”一句话的这种。(@swegmesterflex)

随之,大家开始不断地补充各种飘逸的描述:

“Applies the function to the input”(@trashacount12345)

“把函数应用在输入上。”

“Can be called.”(@trashacount12345)

“可以被调用。”

另一个缺点是不给示例

我小时候用TurboPascal 7编程,标准库里面每个函数都有示例,不是只有描述。

为啥PyTorch就不能给每个函数写个示例?(@visarga)

还有第三个缺点,加载慢

你们不觉得PyTorch文档加载巨慢么?手机上都看不了,因为加载时间太久了。(@fckoch)

所以,软件公司什么时候才能感受到,不给清晰文档、不给示例的东西没法用,继而开发出既有好文档又有示例搭配的产品呢?

有人并不抱太大希望 (@inigoskimmer) :

不会太快吧。今年还有个资深程序员跟我说,他没注释代码,因为代码很可能会改,加注释的话可能会误导别人。

写注释、写文档,原本就是开发者头疼的活动吧。

也有网友 (@real_kdbanman) 从另一个角度观察了这个问题:

请记得,所有主流库都是免费的,开源的!每个人都有责任把它们变好的。文档Pull Request真的很有帮助。

虽然,最初参与开发的人,对初始文档的质量负有责任。但如果后来的用户只在那里干等,也是不能期待文档自己变好。

机器学习这个领域,一直是背靠着高度开放的社区,才得到迅猛的发展。想让机器学习工具变得更好用,也要社区成员们一起努力才能实现吧。

不过,这也不是问题的全部:

同一个概念,不同的术语

上文只提到了“缺乏有效描述”的问题,却没有解释,用户为什么会需要详尽的描述,ML领域的沟通成本为什么这样高。

网友@luhem007是这样说的:

在统计和机器学习的社区里:同一个数学/统计概念能有无数个不同定义。这样交流起来就很困难,文档读起来也很困难。

好像不同的学科都发现了同一个规律,然后迅速给它起个名字占为己有,就跟插个旗子抢地盘一样。

楼下深有同感 (@seman_ticks) :

我想起之前上过的两门课,一门是数学系的,另一门是计算机系的,本质上讲的东西都一样,就是命名体系不一样。

可以开个像“thesaurus”那样的同义词库了吧。

你怎么看?

在机器学习库/工具身上,网友们找到的缺陷数不胜数,本文难以一一覆盖。

阁下也有不吐不快的槽点么?或者有解决问题的方案建议么?

可以留言在评论区,也可以去Reddit参与一下吐槽盛会,有益身心健康。

Reddit讨论区:
https://www.reddit.com/r/MachineLearning/comments/eftv1o/d_what_frustrates_you_about_ml_tools_libraries/

版权所有,未经授权不得以任何形式转载及使用,违者必究。