如何看待Python超越R成為最受歡迎的機器學習語言?

絕不收兵


Python在數據挖掘上特別好,主要是喜歡它在數據挖掘上面的作用。

希望Python越來越好。


喜歡笑的潤潤


首先了解一下Python與R語言各自的優缺點,再分析Python為什麼會成最受歡迎的機器學習語言。

R語言介紹:

R語言誕生於1980年左右的S語言的一個分支。可以認為R是S語言的一種實現。而S語言是由AT&T貝爾實驗室開發的一種用來進行數據探索、統計分析和作圖的解釋型語言。作為一種統計分析軟件,是集統計分析與圖形顯示於一體的。它可以運行於UNIX,Windows和Macintosh的操作系統上。

R語言作為統計學一門語言,一直在小眾領域閃耀著光芒。直到大數據的爆發,R語言變成了一門炙手可熱的數據分析的利器。隨著越來越多的工程背景的人的加入,R語言的社區在迅速擴大成長。廣泛應用於教育,銀行,電商,互聯網­等等。

R語言在數據分析與機器學習領域已經成為一款重要的工具。隨著機器逐步成為愈發核心的數據生成器,該語言的人氣也一路攀升。不過R語言有著自己的優勢與缺點,開發人員只有加以瞭解後才能充分發揮它的強大能力。

R語言的優勢:

  1. 免費,開源,體積小

  2. 是專門為統計和數據分析開發的語言,各種功能和函數琳琅滿目,其中成熟穩定的一抓一把。

  3. 簡單易學,雖與C語言之類的程序設計語言已差別很大(比如語言結構相對鬆散,使用變量前不需明確定義變量類型等等),但仍保留了程序設計語言的基礎邏輯與自然的語言風格。

R語言的缺點:

  1. 內存管理和平行處理(parallel processing/programming)都為人詬病。數據小時沒有感覺,數據大了就各種報錯

  2. 對大文本(text data)處理差

  3. package的可靠性問題。不常用的package一定要搞清楚函數的用法和核實過輸出,不然真的不推薦使用。

  4. 對效率有要求的時候,有時還是不得不用C,這可能是10小時和10分鐘的差別。

Python介紹:

Python的創始人為Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,做為ABC 語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是因為他是一個叫Monty Python的喜劇團體的愛好者。

1991年,第一個Python編譯器誕生。它是用C語言實現的,並能夠調用C語言的庫文件。從一出生,Python已經具有了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊為基礎的拓展系統。

Python是一種免費、開源的語言,已經成為一種主流編程語言。它天生麗質,易於讀寫,非常實用,從而贏得廣泛的群眾基礎,被譽為“宇宙最好的編程語言”,被無數程序員熱烈追捧。

Python語言的優勢:

  1. 免費,開源:這意味著程序員不用花錢,就可以共享、複製和交換它,這也幫助Python形成了強壯的社區,使用它更加完善,技術發展更快。專業人士可以在社區和初學者分享他們的知識和經驗。

  2. 簡單易學: Python 語言相對於其他編程語言來說,屬於比較容易學習的一門編程語言,它注重的是如何解決問題而不是編程語言的語法和結構。正是因為 Python 語言簡單易學,所以,已經有越來越多的初學者選擇 Python 語言作為編程的入門語言。

  3. 語法優美: Python 語言力求代碼簡潔、優美。在 Python 語言中,採用縮進來標識代碼塊,通過減少無用的大括號,去除語句末尾的分號等視覺雜訊,使得代碼的可讀性顯著提高。

  4. 豐富強大的庫: Python 語言號稱自帶電池(Battery Included),寓意是 Python 語言的類庫非常的全面,包含了解決各種問題的類庫。無論實現什麼功能,都有現成的類庫可以使用。如果一個功能比較特殊,標準庫沒有提供相應的支持,那麼,很大概率也會有相應的開源項目提供了類似的功能。

  5. 開發效率高: Python 的各個優點是相輔相成的。例如,Python 語言因為有了豐富強大的類庫,所以,Python 的開發效率能夠顯著提高。相對於 C、C++ 和 Java 等編譯語言,Python 開發者的效率提高了數倍。實現相同的功能,Python 代碼的文件往往只有 C、C++ 和 Java 代碼的 1/5~1/3。雖然 Python 語言擁有很多吸引人的特性,但是,各大互聯網公司廣泛使用 Python 語言,很大程度上是因為 Python 語言開發效率高這個特點。開發效率高的語言,能夠更好的滿足互聯網快速迭代的需求,因此,Python 語言在互聯網公司使用非常廣泛。

  6. 應用領域廣泛: Python 語言的另一大優點就是應用領域廣泛,工程師可以使用 Python 做很多的事情。例如,Web 開發、網絡編程、自動化運維、Linux 系統管理、數據分析、科學計算、人工智能、機器學習等等。Python 語言介於腳本語言和系統語言之間,我們根據需要,既可以將它當做一門腳本語言來編寫腳本,也可以將它當做一個系統語言來編寫服務。

Python語言的缺點:

  1. Python 的執行速度不夠快。當然,這也不是一個很嚴重的問題,一般情況下,我們不會拿 Python 語言與 C/C++ 這樣的語言進行直接比較。在 Python 語言的執行速度上,一方面,網絡或磁盤的延遲,會抵消掉部分 Python 本身消耗的時間;另一方面,因為 Python 特別容易和 C 結合起來,因此,我們可以通過分離一部分需要優化速度的應用,將其轉換為編譯好的擴展,並在整個系統中使用 Python 腳本將這部分應用連接起來,以提高程序的整體效率。

  2. Python 的 GIL 鎖限制併發: Python 的另一個大問題是,對多處理器支持不好。如果讀者接觸 Python 時間比較長,那麼,一定聽說過 GIL 這個詞。GIL 是指 Python 全局解釋器鎖(Global Interpreter Lock),當 Python 的默認解釋器要執行字節碼時,都需要先申請這個鎖。這意味著,如果試圖通過多線程擴展應用程序,將總是被這個全局解釋器鎖限制。當然,我們可以使用多進程的架構來提高程序的併發,也可以選擇不同的 Python 實現來運行我們的程序。

  3. Python 2 與 Python 3 不兼容: 如果一個普通的軟件或者庫,不能夠做到後向兼容,那麼,它會被用戶無情的拋棄了。在 Python 中,一個槽點是 Python 2 與 Python 3 不兼容。因為 Python 沒有向後兼容,給所有的 Python 工程師帶來了無數的煩惱。

為什麼Python超越R成為最受歡迎的機器學習語言?

Python開發人員社區不斷狀大,支持庫持續增多,使Python成為世界上功能最豐富的編程語言之一,可以適用於任何項目開發。Python在科學領域非常流行,特別是在數據挖掘和機器學習等方面。

在GitHub上有大量的有關機器學習語言開源項目,幫助我們快速的開發。

  1. Scikit-Learn:在機器學習和數據挖掘的應用中,Scikit-Learn是一個功能強大的Python包,我們可以用它進行分類、特徵選擇、特徵提取和聚集。

  2. Statsmodels:是另一個聚焦在統計模型上的強大的庫,主要用於預測性和探索性分析,擬合線性模型、進行統計分析或者預測性建模,使用 Statsmodels是非常合適的。

  3. PyMC:是做“貝葉斯曲線”的工具,其包含貝葉斯模型、統計分佈和模型收斂的診斷工具,也包含一些層次模型。

  4. Gensim:Gensim被稱為“人們的主題建模工具”,其焦點是狄利克雷劃分及變體,其支持自然語言處理,能將NLP和其他機器學習算法更容易組合在一起,還引用了Google的基於遞歸神經網絡的文本表示法word2vec。

  5. Orange:是一種帶有圖形用戶界面的庫,在分類、聚集和特徵選擇方法方面,相當齊全,還有交叉驗證的方法。

  6. PyMVPA:是一種統計學習庫,包含交叉驗證和診斷工具,但沒有Scikit-learn全面。

  7. Theano:是最成熟的深度學習庫,它提供了不錯的數據結構表示神經網絡的層,對線性代數來說很高效,與Numpy的數組類似,很多基於Theano的庫都在利用其數據結構,它還支持開箱可用的GPU編程。

  8. PyLearn:是一個基於Theano的庫,它給Theano引入了模塊化和可配置性,可以通過不同的配置文件來創建神經網絡。

Python因其獨有的特點從眾多開發語言中脫穎而出,深受世界各地的開發者喜愛。人生苦短,我用Python.


PY程序猿


近年來隨著人工智能的蓬勃發展,Python這門編程語言已經越來越受到歡迎,我們可以看到在全球最流行的編程排行榜上,Python一直處於上升的趨勢。Python之所以如此受到歡迎主要原因是因為Python本身的性能非常的好,Python就是為了機器學習和人工智能設計的,使用Java和c語言等其他的編程語言很難實現跟Python一樣的效果。另外Python的語法非常的簡潔,一個功能使用Java可能要幾百行代碼才能解決,非常的耗時耗力,但是使用Python的話可能幾十行代碼就可以完成。Python擁有非常多的各種各樣的庫,可以滿足我們幾乎所有的開發需求。正所謂不必要重複造輪子,利用之前已經有人完成的工作代碼我們可以更好更快的實現我們所需要的功能。更重要的是Python入門非常非常的容易,可以說是現在所有編程語言裡入門最簡單的一門編程語言了。容易入門也讓這門編程語言普及程度非常的大,正是普及程度很大才讓越來越多的人瞭解到這門編程語言,加上優秀的性能所以就成為了現在機器學習裡面最受歡迎的編程語言。

相對於Python而言,R語言入門的難度要高上很多,這樣就導致了很多人不願意花那麼大量的時間來學習這門編程語言。另外用R語言編程程序的代碼量要遠遠的高於Python,在性能差別不大的情況下更多的程序員會選擇Python來做開發,更重要的R語言運行的速度要比Python慢上不少,機器學習上經常需要快速運行反應的功能,所以慢慢的Python就遠遠的超越了R語言


麻瓜大師



python俗稱編程,我們常見的幾種計算機語言包括java,c語言等。python是這幾種語言中最簡單易懂的一種,特別是初學者,選擇一門好的計算機語言,尤其重要,而python為計算機應用者提供了一份簡結有效,迅速的計算機語言進入模式。隨著互聯網的發展,人與人,人與世界的溝通越來越普便,而計算機這一互聯網的載核,做為互聯網時代的文明產物,性能隨著人類技術的個革新,特別是第二次工業革命以來,計算機逐漸登上世界的舞臺。現在第四次工業革命已經來臨,標誌世界即將進入數據化,數字化,全球化,萬物聯通的新時代,以人工智能為代表的新興行業,正以排山倒海之勢衝擊著以人工為主的世界經濟。舊有的經濟工作模式,枯燥乏味而這些將被人工智能所代替。而我們所要面臨的是如何在這新時代中找到工作,如何填補人工智能留下的空缺。眾所周知,我們人類有自己的語言,同樣的計算機也有,而python就是一門計算機語言。掌握好python這門語言,你會發現你已經握住未來時代發展的機遇。你可以從事計算機軟件開發,數據提取、獲得,從事人工智能的開發。在另一方面,掌握好python的學習,你可以從自身的職業出發,學習有關相關專業的python學習。總而言之,python學習是當今最熱門,同時也是最易學的一門計算機語言。


型男愛醫學


Python和R語言都是統計學中大多數人青睞的編程語言,R語言運行速度較慢,而且相對於Python難度大,但可視化很強,數據科學優勢突出。Python比較通用靈活吧。語言選擇應該基於應用,而現在許多公司也選擇把兩種語言結合起來,各有千秋。


愛吃鹹蛋黃的男孩紙


Python其實並不是很理想的數據採集工具,但是它有活躍的開源社區參與度,足矣!尤其那些方便的插件,便利高效。

參與度決定了走向,

內在的便利也至關重要。


觀察員同志


機器學習的話,感覺用python可以省去跳語言方面的坑,從而更多的精力放在機器學習算法上。當感覺用python執行算法太慢需要做優化,再去用c重寫某些模塊,就好了。該思想來自《機器學習實戰》。


分享到:


相關文章: