Why R

一次又一次,在與開始學(xué)習(xí)數(shù)據(jù)科學(xué)的人交談時,會出現(xiàn)一種挫敗感:

我不知道從哪種編程語言開始?!?/p>

它不僅僅是編程語言,還有像Tableau,SPSS等軟件系統(tǒng)。工具和編程語言的范圍越來越廣,很難知道選擇哪一種。

我知道了。幾年前,當(dāng)我開始重點(diǎn)關(guān)注數(shù)據(jù)科學(xué)時,我回顧了當(dāng)時所有流行的編程語言:Python,R,SAS,D3,更不用說事后的一些,對于分析來說真的不是那么好像Perl,Bash和Java。即便在今天,我只是閱讀了一個建議(由著名的數(shù)據(jù)科學(xué)博主)使用UNIX的AWK和SED等神秘工具。(如果你知道什么是AWK和SED,請不要擔(dān)心,因?yàn)槟悴粦?yīng)該學(xué)習(xí)它們。不是在開始時。)

有這么多的建議,如此多的材料,如此多的選擇,很難先知道要學(xué)什么。這里有大量內(nèi)容,很難知道在哪里可以找到“金塊”;要學(xué)習(xí)的東西會為您帶來高額的實(shí)時投資回報(bào)。

這就是問題的癥結(jié)所在。事實(shí)是,你的時間有限。學(xué)習(xí)一門新的編程語言對您的時間來說是一筆巨大的投資,因此您需要對所選擇的語言保持戰(zhàn)略性。

需要明確的是,某些語言會為您的投資帶來很高的回報(bào)(您的時間和金錢投入)。其他語言純粹是輔助工具,您每年只能使用幾次。

讓我為您輕松一點(diǎn):先學(xué)習(xí)R。

專注于一種語言

在描述你應(yīng)該學(xué)習(xí)R的原因之前,我想強(qiáng)調(diào)一下,當(dāng)你開始學(xué)習(xí)數(shù)據(jù)科學(xué)時,你應(yīng)該學(xué)習(xí)一種語言。

當(dāng)我在Sharp Sight Labs發(fā)布R教程時,我有幾個人問我是否應(yīng)該學(xué)習(xí)Python(同時)。我對此的回答基本上是“不”。除非你直接需要多種語言,否則你應(yīng)該選擇一種語言。

專注于一種編程語言的原因是因?yàn)?a target="_blank">您需要更多地關(guān)注流程和技術(shù),而不是語法。您需要學(xué)習(xí)如何使用數(shù)據(jù)科學(xué)工具思考數(shù)據(jù)以及如何解決問題。事實(shí)證明,我認(rèn)為R是最好的編程語言。

學(xué)習(xí)R.

幾乎沒有任何保留,我建議你學(xué)習(xí)R作為你的第一個“數(shù)據(jù)科學(xué)編程語言?!彪m然有例外(例如,如果你有特定的項(xiàng)目需要),我認(rèn)為R是你開始時的最佳選擇。

原因如下:

R正在成為數(shù)據(jù)科學(xué)的“通用語言”

R正在成為數(shù)據(jù)科學(xué)通用語言。這并不是說它是唯一的語言,或者說它是每項(xiàng)工作的最佳工具。然而,它是最廣泛使用的,并且它越來越受歡迎。

正如我之前所說,O'Reilly Media 在2014年進(jìn)行了一項(xiàng)調(diào)查,以了解數(shù)據(jù)科學(xué)家目前使用的工具。他們發(fā)現(xiàn)R是最流行的編程語言(如果將SQL排除為“適當(dāng)?shù)摹本幊陶Z言)。

從更廣泛的角度來看,還有其他一些排名可以看到編程語言的普及程度(不僅僅是數(shù)據(jù)科學(xué)家)。例如,Redmonk通過檢查討論(在Stack Overflow上)和使用(在GitHub上)來衡量編程語言的流行程度。在他們的最新排名中,R排名第13,是所有統(tǒng)計(jì)編程語言中最高的。Redmonk還指出,R隨著時間的推移越來越受歡迎。

TIOBE(根據(jù)搜索引擎搜索次數(shù)對編程語言進(jìn)行排名)的類似排名表明,R的年度同比增長強(qiáng)勁。

image.png

請記住,Redmonk和TIOBE排名適用于所有編程語言。當(dāng)你看到這些,R現(xiàn)中最流行和最常用的排名在所有。

公司使用R

R正在招聘數(shù)據(jù)科學(xué)家的幾家最佳公司中大量使用。谷歌和Facebook -誰我認(rèn)為是兩個在我們的現(xiàn)代經(jīng)濟(jì)工作最好的公司- 都在使用R數(shù)據(jù)科學(xué)家。

(為了了解Facebook這樣的公司如何使用R,我肯定會查看Solomon Messing的博客。所羅門是Facebook的數(shù)據(jù)科學(xué)家,他的博客文章證明R非常出色。)

正如Revolution Analytics 最近指出的那樣,“R也是微軟數(shù)據(jù)科學(xué)家的首選工具,他們將機(jī)器學(xué)習(xí)應(yīng)用于Bing,Azure,Office以及銷售,營銷和財(cái)務(wù)部門的數(shù)據(jù)。”

除了Google,F(xiàn)acebook和微軟等科技巨頭外,R還廣泛應(yīng)用于包括美國銀行,福特,TechCrunch,Uber和Trulia在內(nèi)的眾多公司。

R在學(xué)術(shù)界很受歡迎

R不僅僅是工業(yè)的工具。它在學(xué)術(shù)科學(xué)家和研究人員中也非常受歡迎,這一事實(shí)證明了最近在著名期刊“自然”雜志上的R編程語言。

R在學(xué)術(shù)界的受歡迎程度非常重要,因?yàn)樗鼊?chuàng)造了一個為行業(yè)提供支持的人才庫。

換句話說,如果最優(yōu)秀和最聰明的人在大學(xué)接受過R培訓(xùn),那么這將增加R在工業(yè)中的重要性。離開學(xué)術(shù)界進(jìn)行商業(yè)活動的學(xué)者,博士和研究人員的供應(yīng)創(chuàng)造自己對 R患者的需求。

此外,隨著數(shù)據(jù)科學(xué)的成熟,商業(yè)領(lǐng)域的數(shù)據(jù)科學(xué)家需要與學(xué)術(shù)科學(xué)家進(jìn)行更多溝通。我們需要借用技巧和分享想法。當(dāng)我們對地球進(jìn)行測量并將世界轉(zhuǎn)變?yōu)閿?shù)據(jù)流時,學(xué)術(shù)科學(xué)與面向商業(yè)的數(shù)據(jù)科學(xué)之間的界限可能會變得模糊。

在R中學(xué)習(xí)“數(shù)據(jù)科學(xué)技能”是最容易的

然而,R的普及并不是學(xué)習(xí)R的唯一原因。

最終,要真正學(xué)習(xí)數(shù)據(jù)科學(xué),您需要學(xué)習(xí)“核心”技能領(lǐng)域:數(shù)據(jù)處理,數(shù)據(jù)可視化和機(jī)器學(xué)習(xí)。

在選擇語言時,您需要一種在每個領(lǐng)域都具有重要能力的語言。您需要工具來執(zhí)行這些任務(wù),以及使用您選擇的語言學(xué)習(xí)它們的資源。

如上所述,您需要更多地關(guān)注流程和技術(shù),而不是語法。

你需要學(xué)習(xí)如何思考解決問題。

您需要學(xué)習(xí)如何找到數(shù)據(jù)的洞察力

要做到這一點(diǎn),您需要掌握數(shù)據(jù)科學(xué)的3個核心技能領(lǐng)域:數(shù)據(jù)處理,數(shù)據(jù)可視化和機(jī)器學(xué)習(xí)。掌握這些技能領(lǐng)域在R中將比幾乎任何其他語言更容易。

數(shù)據(jù)爭論

人們常說80%的數(shù)據(jù)科學(xué)工作是數(shù)據(jù)處理。通常情況下,您需要花費(fèi)大量時間“爭論”您的數(shù)據(jù); 把它放到你想要的形狀。R有一些你會發(fā)現(xiàn)的最好的數(shù)據(jù)管理工具。

R中的dplyr包使數(shù)據(jù)操作變得容易。這是我多年前希望擁有的工具。當(dāng)您將基本dplyr“鏈接”在一起時,您可以大大簡化數(shù)據(jù)操作工作流程。

數(shù)據(jù)可視化

ggplot2是截至2015年最好的數(shù)據(jù)可視化工具之一.Ggplot2的優(yōu)點(diǎn)在于,當(dāng)您學(xué)習(xí)語法時,您還將學(xué)習(xí)如何思考數(shù)據(jù)可視化。

我已多次說過,所有統(tǒng)計(jì)可視化都有一個深層結(jié)構(gòu)。有一個高度結(jié)構(gòu)化的框架,用于思考和創(chuàng)建所有數(shù)據(jù)可視化。ggplot2基于該框架。通過學(xué)習(xí)ggplot2,您將學(xué)習(xí)如何考慮可視化數(shù)據(jù)。

此外,當(dāng)您將ggplot2和dplyr組合在一起時(使用鏈接方法),找到數(shù)據(jù)的洞察力幾乎毫不費(fèi)力。

機(jī)器學(xué)習(xí)

最后,還有機(jī)器學(xué)習(xí)。雖然我認(rèn)為大多數(shù)初學(xué)數(shù)據(jù)科學(xué)的學(xué)生應(yīng)該等待學(xué)習(xí)機(jī)器學(xué)習(xí)(首先學(xué)習(xí)數(shù)據(jù)探索更重要),機(jī)器學(xué)習(xí)是一項(xiàng)重要的技能。當(dāng)數(shù)據(jù)探索停止產(chǎn)生洞察力時,您需要更強(qiáng)大的工具。

當(dāng)您準(zhǔn)備開始使用(和學(xué)習(xí))機(jī)器學(xué)習(xí)時,R擁有一些最好的工具和資源。

關(guān)于機(jī)器學(xué)習(xí)的最佳,最引用的介紹性文本之一,統(tǒng)計(jì)學(xué)習(xí)簡介,使用R編程語言教授機(jī)器學(xué)習(xí)。此外,斯坦福大學(xué)統(tǒng)計(jì)學(xué)習(xí)課程使用這本教科書,并在R教授機(jī)器學(xué)習(xí)。

稍后了解更多語言和工具

要清楚,最終你會想要學(xué)習(xí)更多的編程語言。就像工具箱中沒有單一的最佳工具一樣,沒有一種編程語言可以完美地解決您想要解決的每個數(shù)據(jù)問題。話雖如此,在掌握了R中數(shù)據(jù)科學(xué)的核心技能之后,你可能還想學(xué)習(xí)其他語言來解決具體問題。

以下是您學(xué)習(xí)R后可能會考慮的其他語言的快速回顧:

Python

Python是一種很棒的多用途編程語言,你應(yīng)該在某些時候考慮它。需要明確的是,在O'Reilly最近的調(diào)查中,Python是數(shù)據(jù)科學(xué)家中第二大最受歡迎的編程語言。它具有出色的可視化工具以及機(jī)器學(xué)習(xí)工具。對于大多數(shù)人來說,我認(rèn)為Python是第二種要學(xué)習(xí)的語言。

D3

我愛D3。D3中創(chuàng)建的可視化效果非常漂亮,D3可視化的交互性非常適合構(gòu)建儀表板。我的問題是它不能很好地?cái)U(kuò)展。對我而言,D3更像是一個“工匠的工具”。它非常適合構(gòu)建優(yōu)雅的數(shù)據(jù)可視化,但是在手動上創(chuàng)建這些東西或多或少的東西在你必須支持?jǐn)?shù)十個合作伙伴的情況下無法擴(kuò)展有新的分析和臨時要求。

我也樂觀地認(rèn)為R的ggvis將允許R用戶創(chuàng)建高度動態(tài)和交互式的可視化,因此在某些時候,R用戶可能能夠?qū)W習(xí)R的ggvis而不是D3。

總結(jié):學(xué)習(xí)R,并集中精力

重申一下,選擇一種語言。如果你剛開始,R幾乎肯定是最好的選擇。而且,真正專注于學(xué)習(xí)數(shù)據(jù)科學(xué)的技能。

另外,一旦你開始學(xué)習(xí)R,就不要得到“閃亮的新物體”綜合癥。

您可能會看到新技術(shù)和工具的演示。只需看看人們正在創(chuàng)建的一些令人眼花繚亂的數(shù)據(jù)可視化。

看到其他人創(chuàng)造出色的作品(并發(fā)現(xiàn)他們正在使用不同的工具)可能會讓你嘗試別的東西。相信我:你需要專注。不要得到“閃亮的新物體”綜合癥。你需要花費(fèi)幾個月(或更長時間)來真正潛入一個工具。

正如我上面提到的,您真的希望在整個數(shù)據(jù)科學(xué)工作流程中建立自己的技能。至少在數(shù)據(jù)可視化和數(shù)據(jù)操作方面,您需要具備扎實(shí)的技能。在開始前進(jìn)之前,您需要能夠在R中進(jìn)行一些嚴(yán)格的數(shù)據(jù)探索。

在R上花費(fèi)100個小時將比在10個不同工具上花費(fèi)10個小時產(chǎn)生更好的回報(bào)。最后,通過集中精力,您的投資回報(bào)率會更高。不要被“最新,性感的新事物”分散注意力。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容