機器學習和資料分析是開源幾乎已成為創新新工具的事實上許可的兩個領域。 python和r語言都開發了強大的開源工具和庫生態系統,可幫助任何技能水平的資料科學家更輕鬆地執行分析工作。
機器學習和資料分析之間的區別有點不確定,但是主要思想是機器學習將**準確性優先於模型可解釋性,而資料分析則強調可解釋性和統計推斷。 python更關注**的準確性,在機器學習中贏得了良好的聲譽。 r作為用於統計推斷的語言,在資料分析中已廣為人知。
這並不能將兩種語言都歸為一類-python可以有效地用作資料分析工具,並且r具有足夠的靈活性以在機器學習中完成一些出色的工作。 兩種語言都有大量軟體包,它們試圖複製另一種語言的功能。 python的庫可增強其統計推斷的能力,r的軟體包可提高其**準確性。
儘管python自然地傾向於機器學習,但它具有可進一步優化此屬性的軟體包。 pybrain是乙個模組化的機器學習庫,為機器學習任務提供了強大的演算法。 這些演算法直觀且靈活,但是該庫還具有多種環境來測試和比較您的機器學習演算法。
scikit-learn是最流行的python機器學習庫。 scikit-learn建立在numpy和scipy的基礎上,提供了用於資料探勘和分析的工具,可增強python已經非常優越的機器學習可用性。 numpy和scipy自己留下深刻的印象。 它們是python資料分析的核心,任何認真的資料分析人員都可能原始使用它們,而頂層沒有頂級軟體包,但是scikit-learn將它們組合到機器學習庫中,進入門檻更低。
在資料分析方面,python從幾個不同的軟體包中獲得了可喜的發展。 pandas是其最著名的資料分析軟體包之一,它為python提供了高效能的結構和資料分析工具。 與許多python軟體包一樣,它縮短了啟動專案與在該專案中進行有意義的工作之間的時間。 如果您真的想堅持使用python並獲得盡可能多的r功能,則rpy2提供了r所有的主要功能。 這為您提供了python最好的r語言。
與python一樣,r也具有許多軟體包來提高其效能。 在機器學習中與python達到同等水平時,nnet提供了輕鬆建模神經網路的功能,從而提高了r。 caret是另乙個增強r機器學習功能的軟體包,在這種情況下,它通過提供一組功能來提高**模型建立的效率。
但是資料分析是r的領域,並且有一些軟體包可以將其改進到超越其已經非常出色的功能。 提供用於資料分析的預建模,建模和後建模階段的軟體包。 這些軟體包針對特定任務,例如資料視覺化,連續回歸和模型驗證。 使用所有這些跨功能的庫和軟體包,您應該將哪種語言拖到資料戰場上?
如果您有一定的程式設計經驗,python可能是適合您的語言。 python的語法比r的語法與其他語言更相似。 python的可讀性也幾乎是無與倫比的,因為它讀起來很像口頭語言。 這種可讀性強調了開發效率,而r的非標準**可能會導致程式設計過程中的停頓。
python是眾所周知的一種靈活的語言,因此,如果您打算在機器學習或資料分析專案完成後繼續進行其他領域的專案,那麼最好還是堅持使用python,這樣就不需要學習一種新的語言。
python的靈活性使其成為生產使用的絕佳選擇,因為例如,當資料分析任務需要與web應用程式整合時,您可以繼續使用python而不是與另一種語言整合。 r是乙個很棒的資料分析工具,但是在資料分析之外可以完成的工作方面相當有限。
如果您是程式設計的新手,因此不熟悉「標準」語法,那麼兩種語言的學習曲線大致相同。 但是,如果目標是超越機器學習和資料分析的基礎知識,那麼python可能是乙個更好的選擇。 考慮到在python的軟體包庫中增加了scikit-learn,尤其如此。 該軟體包維護良好,並且正在積極開發中。 r可能具有更大的軟體包多樣性,但在這些軟體包之間也存在更多的碎片和更少的一致性。
迄今為止,r主要用於學術和研究。 但是,隨著r用途擴充套件到企業市場,這種情況開始改變。 r由統計人員撰寫,它表明,基本的資料管理任務非常容易。 在r中,標記資料,填充缺失值和過濾都是簡單直觀的,它強調了使用者友好的資料分析,統計資訊和圖形模型。
由於r作為一種統計語言而構建,因此總體上它具有強大的統計支援。 它代表統計學家的思維方式,因此,對於具有正式統計背景的任何人來說,這都是自然而然的。 諸如statsmodels之類的軟體包為python中的統計模型提供了堅實的覆蓋範圍,但是r的統計模型軟體包的生態系統更加強大。 就初學者而言,r使探索性工作比python容易,因為統計模型只能用幾行**編寫。
r對熊貓的最接近答案可能是dplyr,但它比熊貓更有限。 這聽起來可能是消極的,但是dplyr的好處是更加專注,這使發現如何執行任務變得更加容易。 dplyr也比熊貓更具可讀性。
r的主要問題是其一致性。 演算法是由第三方提供的,這使得它們相對不一致。 導致開發速度下降的原因是必須學習新的資料建模方法以及使用的每種新演算法進行**。 每個軟體包都需要新的理解。 文件的不一致也是如此,因為r的文件幾乎總是不完整。
但是,如果您處於學術環境中並且需要資料分析工具,則很難為任務選擇r。 對於專業用途,python更有意義。 python在整個行業中得到廣泛使用,並且隨著r變得越來越流行,python是更易於實現協作的語言。 python的強大功能使它不僅可以輕鬆地推薦為通用和機器學習語言,而且還可以推薦其大量類似於r的程式包以及作為資料分析工具。
如果您還不了解r,請學習python並使用rpy2訪問r的功能。 您將獲得兩種語言的強大功能,並且python已投入生產準備就緒,因為大多數公司都已為python準備了生產系統。 對於r而言並非如此。一旦您學習了rpy2,跳到純r並不令人生畏,但向相反方向移動要困難得多。
不管您要解決的是什麼問題,python和r都具有很好的軟體包來保持彼此之間的某種奇偶校驗。 每種版本都有太多的發行版,模組,ide和演算法,您都不會錯。 但是,如果您正在尋找一種在機器學習和資料分析方面也很出色的靈活,可擴充套件的多功能程式語言,那麼python是不二之選。
翻譯自:
Scikit學習 使用Python進行機器學習
在此文中,我們將討論python中的scikit learn。在談論scikit learn之前,必須先了解機器學習的概念,並且必須知道如何將python用於資料科學。借助機器學習,您無需手動收集見解。您只需要乙個演算法,機器就會為您完成剩下的工作!這不令人興奮嗎?scikit學習是我們可以使用py...
機器學習與氣象資料 使用機器學習進行氣象資料分析
1.首先我們需要找到資料,很多地方提供了api,比如 但是這個 不提供空氣質素 2.從api獲取資料,使用python,粘出來 coding utf 8 import urllib2 import json from datetime import datetime import pandas as...
機器學習與R語言 5 規則學習演算法
目錄2.規則學習應用示例 過程 對於每乙個特徵,基於相似的特徵值1r對資料分組,然後對於每個書分組,該演算法的 類為占多數的類。比如動物分類中若以行走途徑為規則錯誤率為2 15,若以是否有皮毛為規則錯誤率為3 15,因此1r演算法基於以行走途徑為規則返回結果。注意 如果分類水平分布很不均勻,規則學習...