機器學習編程語言之爭,Python奪魁
來源:
奇酷教育 發表于:
隨著科技的發展,擁有高容量、高速度和多樣性的大數據已經成為當今時代的主題詞。數據科學領域中所采用的機器學習編程語言大相徑庭。究
隨著科技的發展,擁有高容量、高速度和多樣性的大數據已經成為當今時代的主題詞。數據科學領域中所采用的機器學習編程語言大相徑庭。究竟哪種語言最適合機器學習成為爭論不休的話題。近日,密西根州立大學的博士生Sebastian Raschka再次發起了機器學習編程語言之爭,分析了自己選擇Python的原因。
目前,機器學習牽涉的編程語言十分多樣,包括了MATLAB、Julia、R、Perl、Python、Ruby等等。首先,Raschka定義 了語言好壞的原則:一門好的語言應該使得編寫、調試和執行代碼的總時間最短。然后,他花大篇幅講述了一個簡單的道理--沒有一門語言是對所有情況、所有人都十分適合的。
但Roberto Waltman博士分析:“在這種唯一正確的方式下,面向對象的Spaghetti code就是Lasagna code。”針對具體的應用場景以及參與項目的人員,開發團隊或個人要對任務需求進行評估,再結合人員對于各個語言的熟悉程度和語言生態環境的情況等等,作出選擇。接下來,Raschka開始正式點評各個語言相對與Python在機器學習時的優缺點。
表現平平的MATLAB
作為機器學習、模式識別等方面經常使用的工具,MATLAB被放在了第一個分析。Raschka認為,MATLAB在實現機器學習算法時要比Python或者 NumPy 更加自然。很多高校也在計算機科學相關的課程中教授MATLAB語言。然而,MATLAB也存在很多的缺點:價格昂貴、非開源、性能表現平平、語法不符合程序員的習慣等。例如,MATLAB中矩陣乘積運算操作為 X.dot(Y) ,而Python為 X@W ,更加簡潔、明了。
各種語言相對于C的測試性能--C的性能為1.0,越小越好
從上圖可以看出,MATLAB的性能比Python、Go、Java等語言要差很多。Raschka也提到,上圖中Python的性能也表現不好。但是,現在性能強勁的GPU為Python提供了強大的后盾。在2010年的時候,Python中的 Theano庫 在CPU上運行時,其速度是NumPy的1.8倍。而Theano在GPU上運行時,其速度就是NumPy的11倍。因此,在目前更高性能的GPU的幫助下,Python性能已經有了更大的改進。
老而彌堅的Python
最后,Raschka夸贊了自己所喜愛的Python語言。盡管Python已經走過了20多年的風雨歷程,Raschka認為它仍然可以繼續流行下去。而且,Raschka還不遺余力的列出了自己最喜歡的Python工具--NumPy、Theano、 scikit-learn 、 matplotlib等。
Python的優勢在智能時代、大數據時代愈加凸顯出來,奇酷教育Python高級開發培訓班,0元入學,先就業后付款;一周免費試聽,不滿意不繳費;完善的就業服務體系,保障就業。在這里,你不光能夠學會如何編寫程序,還能夠學會如何編寫高質量的程序,一躍成為專業的工程師!
奇酷教育原創開發的
Python培訓課程不僅涵蓋Web前后端開發和網絡爬蟲技術,還包括獨有的數據分析和機器學習,前端、服務端一網打盡。可從事Web前端、Web服務端、服務器運維、網絡爬蟲、大數據分析、機器學習等多種熱門職業,學員百分百高薪就業!