機器學習工具吐槽大會:回歸模型連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/
- 馬云正式卸任后,阿里巴巴開盤跌0.87%2019-09-10
- 亞馬遜在華拓展云計算團隊,挑戰阿里巴巴和騰訊2019-10-16
- AI獨角獸云知聲,已完成一期科創板IPO輔導2019-10-17
- IDC:今年上半年中國公有云服務市場規模達54.2億美元2019-11-07




