精通機器學習為什麼同時也必須精通一門編程語言?

發現機器學習目前已經有很多商業化或開源軟體,商業化軟體方面有SAP HANA、salford systems,開源的有mloss、DMOZ、LIBSVM、WEKA、scikit、OpenCv、Orange 、Mallet、NLTK、lucene等,亞馬遜、谷歌等甚至已經提供了進行大數據機器學習的API,按次計費提供商業化應用,但又聽到很多建議說,學機器學習必須要精通一門編程語言如c/c++、java、python、matlab、r等,想問的是:精通機器學習到底要不要同時精通一門編程語言?


精通機器學習不一定需要精通一門編程語言。假如你的數學功底達到了 Alexey Chervonenkis (VC理論的創始人之一,基本可以肯定不精通編程語言)的程度,那你可以去統計學習理論領域開疆拓土;假如你的運算能力達到了可以心算大矩陣奇異值分解,那你可以去直接人腦開發和優化新演算法,不會語言沒關係,寫偽代碼也可以。

假如你都做不到的話。。。大哥,會使用柵格法找參數真的不叫精通機器學習,頂多能算精通阿拉伯數字的閱讀。。。


在你所提到的 「精通機器學習」 這個概念裡面,包含著很多層定義。

機器學習的研究者大致有兩類人,第一類人側重於研究基礎理論,他們分布在各個大學、研究所等,他們玩的東西在你眼裡可能就是一些數學遊戲,推公式,算邊界,這些人對什麼編程工具可能並不多麼重視。MATLAB能搞定,Python可以,Java也可以,他們都是挑簡單粗暴的用,寫的代碼也許在工業屆會被噴死。但這絲毫不影響他們成為精通機器學習的人,或者成為大師級的人。第二類人存在於工業界,他們的直接目標是為公司的某個項目獲取實際效果,比如推薦系統、點擊率預估之類的。老闆給他們的直接任務可能是需要提高多少百分點,沒人關心你用的哪種高深的演算法。由於公司的代碼必須兼顧可擴展性,所以這些部門的技術老大對代碼質量要就比較嚴,代碼必須抽象的好而且效率要高,這時候你就不單單是在玩數學了,精通某種語言是首要條件。演算法構思的再好,代碼垃圾,效率差照樣是不會被接受的。所以對於工業界來講,你首先是一個機器學習工程師,僱用你是來解決問題的,你必須要拿出漂亮的代碼,這時候不精通語言你覺得能行嗎?

當然了,如果你是第三類人,理論紮實而且代碼也一流,那就可以去試試各大公司的研究院了,那裡有你的很多同類。


精通機器學習不需要精通編程語言

會使用這些工具叫做精通機器學習? 會開發這些工具叫精通機器學習?


精通汽車設計需要精通物理么?現在汽車製造業已經這麼成熟了,賣輪子、方向盤、發動機、玻璃的商家到處有,扳手、螺絲刀、電鋸這些我都會用,真的有必要去學物理么?

-------某汽車組裝車間工人如是說


少年,精通機器學習工具之於精通機器學習,就像精通office辦公軟體之於精通計算機。


其實在精通機器學習(不是統計)的過程中,你已經精通了一門語言.

所以問題不成立,over


你是打算吹啊?


導師讓你參照某個論文實現一下演算法,作出結果 你得能實現吧?

實現過程中你得會調試bug吧?

演算法實現後你得會製作數據分析圖表吧?

演算法效率低下你得會優化演算法吧?

導師說應用到一個項目裡面 你得會做界面,做測試 會安裝部署吧

導師讓你替他去現場對介面 你得學會代碼管理維護吧。

導師說 又有一篇論文。。。

你這還不叫精通嘛?


題主重新定義了「精通機器學習」。。。


題主我建議你先試試"精通C++"


當然啦,以後可以在簡歷上寫精通c++,一手好java,機器學習資深工程師....不過題主都不會編程你機器學習是用手算的嗎?


因為作為程序員,別人寫的程序都是垃圾


精通Python?不錯的選擇哦~ Matlab也要會~


額。。。。這個問題的邏輯有點亂。。。。

首先,精通機器學習不是你把描述里的軟體和工具玩得轉就了事的啦。。。。

我覺得要說對機器學習熟練(不是精通),達到的要求最低就是,你能夠根據具體業務,馬上找到一個合適的模型,然後做可行性的研究,然後再用以上工具做實際應用的開發。題主只說到了最後一點,前面的都沒說到呢。。。

另外,個人認為不用精通一門語言,語言是工具,是畫筆,精通固然好,前提是你必須要有好的模型,好的演算法才可以實現。


巧婦難為無米之炊,無鍋之炊亦然


建議找一本機器學習的書看看什麼是機器學習,再問這個問題,編程是靈魂我只想說這一句


你這精通的標準有點低...


machine learn in action 的作者python寫的那麼爛也照樣出書了


工欲善其事,必先利其器。


不需要精通一門語言吧,日常的使用就可以了。

做機器學習,總要對自己設計的演算法做實驗進行驗證吧,這些都需要編程語言進行處理的,會用就行,不耽誤自己做實驗。


推薦閱讀:

C++11 中為什麼是auto,而不是var?
為什麼大家都很否定中文編程?
Rust 和 Go 的並發模型有什麼不同,為什說 Rust 的並發模型更好 ?(1.0已沒有內建模型?
為什麼微軟的編程語言C# F#的編譯器要那麼多黑科技?
微軟蘇州Bing可以接觸要哪些技術?編程語言是不是以C#為主,可以自己選擇嗎?

TAG:編程語言 | 機器學習 |