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

我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

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

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

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

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

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

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

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文档整体都很让人崩溃。

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

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

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


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

PyTorch文档比TensorFlow还烂。

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

大体可以总结出三条,

第一是 描述不清楚

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


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


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

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

“Can be called.”(@trashacount12345)

“可以被调用。”

另一个缺点是 不给示例

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

为啥 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/

随意打赏

提交建议
微信扫一扫,分享给好友吧。