姓名:郭金? 學(xué)號(hào):17101223407
參考鏈接:Indeed.com
【嵌牛導(dǎo)讀】:本文根據(jù)一些數(shù)據(jù)進(jìn)行分析帶大家了解機(jī)器學(xué)習(xí)的學(xué)習(xí)應(yīng)該適合的語言的一些建議乒融。
【嵌牛鼻子】:機(jī)器學(xué)習(xí)、編程語言
【嵌牛提問】:? 開發(fā)者到底應(yīng)該學(xué)習(xí)哪種編程語言才能獲得機(jī)器學(xué)習(xí)或數(shù)據(jù)科學(xué)這類工作呢摄悯?
【嵌牛正文】:
? ? 這是一個(gè)非常重要的問題赞季。我們?cè)谠S多論壇上都討論過這個(gè)問題。今天奢驯,我將給出我自己的答案并解釋其中原因申钩,但我們首先看一些數(shù)據(jù)。畢竟瘪阁,這是機(jī)器學(xué)習(xí)者和數(shù)據(jù)科學(xué)家應(yīng)該做的事情:看數(shù)據(jù)典蜕,而不是看觀點(diǎn)断盛。
? ? ? 讓我們看一些數(shù)據(jù)。我將在Indeed.com上使用趨勢搜索愉舔,它可以根據(jù)時(shí)間搜尋實(shí)際工作機(jī)會(huì)中特定的條款。這表明了雇主們正在尋找擁有該技能的人才伙菜。然而轩缤,請(qǐng)注意,這并不是一項(xiàng)有效使用技能的民意調(diào)查贩绕,這種指標(biāo)更能體現(xiàn)技能的受歡迎程度火的。
? ? ? 話不多說,上數(shù)據(jù)淑倾。我搜索關(guān)鍵詞“機(jī)器學(xué)習(xí)”和“數(shù)據(jù)科學(xué)”一馏鹤,搜索選項(xiàng)包括編程語言Java、C娇哆、C+++湃累、JavaScript,還包括了Python和R碍讨,因?yàn)槲抑浪跈C(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)方面很受歡迎治力,當(dāng)然還有Scala,考慮到它與Spark的關(guān)系勃黍,再加上Julia宵统,一些開發(fā)者認(rèn)為這是編程界的“the next big thing”。運(yùn)行這個(gè)查詢覆获,我們得到的數(shù)據(jù)如下:
? ? ? 然后马澈,我用關(guān)鍵詞“機(jī)器學(xué)習(xí)”重新搜索時(shí),又得到了類似的數(shù)據(jù)弄息,如下:
? ? ? 那么痊班,我們能從這些數(shù)據(jù)中得到什么啟示呢?
? ? ? 首先,我們看到并不是“一招通吃”疑枯。在這種情況下辩块,各種機(jī)器學(xué)習(xí)編程語言都很受歡迎。
? ? ? 其次荆永,所有這些編程語言都在急劇增長废亭,反映在過去幾年里,企業(yè)對(duì)機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)的關(guān)注和需求正在急速增加具钥。
? ? 第三豆村,Python明顯領(lǐng)先其它編程語言,其次是Java骂删,然后是R掌动,再然后是C++四啰。Python對(duì)Java的領(lǐng)先優(yōu)勢正在增加,而Java在R上的領(lǐng)先地位正在下降粗恢。必須承認(rèn)柑晒,我很驚訝地看到Java名列第二;我本來是以為是R語言。
? ? ? 第四眷射,Scala的增長令人印象深刻匙赞。它在三年前幾乎是不存在的,現(xiàn)在和這些成熟的編程語言幾乎在同一個(gè)層面妖碉。當(dāng)我們切換到Indeed.com上的數(shù)據(jù)的相對(duì)視圖時(shí)涌庭,這更容易發(fā)現(xiàn)。
? ? ? 第五欧宜,Julia的受歡迎程度雖然不明顯坐榆,但肯定有上升的趨勢。Julia將成為一種流行機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)編程語言嗎冗茸?未來會(huì)告訴你席镀。
? ? ? 如果我們忽略Scala和Julia,以便能夠聚焦其他編程語言的增長蚀狰,那么我們毫無疑問可以確認(rèn):Python和R的增長速度要快于通用語言愉昆。
? ? ? 考慮到增長率的差異,R的受歡迎程度可能很快就會(huì)超過Java麻蹋。
當(dāng)我們專注于深度學(xué)習(xí)這個(gè)問題時(shí)跛溉,數(shù)據(jù)是完全不同的:
? ? 這時(shí),Python仍然是領(lǐng)導(dǎo)者扮授,但C++現(xiàn)在是第二芳室,然后是Java,而C在第四刹勃,R只在第5堪侯。這里顯然強(qiáng)調(diào)了高性能計(jì)算語言。Java正在快速發(fā)展荔仁。它可以很快達(dá)到第二名伍宦,就像一般的機(jī)器學(xué)習(xí)一樣。R不會(huì)很快接近頂部乏梁。令我驚訝的是Lua的缺席次洼,盡管它在一個(gè)主要的深度學(xué)習(xí)框架(orch)中使用,而Julia不存在遇骑。
? ? ? 到這時(shí)卖毁,到底哪種語言才是最受歡迎的編程語言呢?答案應(yīng)該很清楚了落萎。當(dāng)涉及到機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)工作時(shí)亥啦,Python炭剪、Java和R是最流行的技能。如果你想專注于深度學(xué)習(xí)翔脱,而不是一般的機(jī)器學(xué)習(xí)奴拦,那么,在某種程度上來說C++届吁、C也是值得考慮的粱坤。然而,請(qǐng)記住瓷产,這只是看待問題的一種方式。如果你想找一份工作枚驻,或者你只是想在業(yè)余時(shí)間學(xué)習(xí)機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)濒旦,你可能會(huì)得到不同的答案。
? ? 我的個(gè)人答案呢再登?除了有許多頂級(jí)機(jī)器學(xué)習(xí)框架的支持之外尔邓,Python對(duì)我來說很適合,因?yàn)槲矣杏?jì)算機(jī)科學(xué)的背景锉矢。對(duì)于開發(fā)新的算法梯嗽,我也會(huì)感到很舒服,因?yàn)槲业拇蟛糠致殬I(yè)生涯都是用這種語言編程的沽损。但這就是我灯节,有不同背景的人可能會(huì)覺得用另一種語言更好。一個(gè)擁有有限編程技能的統(tǒng)計(jì)學(xué)家肯定會(huì)更喜歡R绵估。一個(gè)強(qiáng)大的Java開發(fā)人員可以使用他最喜歡的語言炎疆,因?yàn)橛写罅康腏ava API的開放源代碼。對(duì)于這些圖表上的任何一種語言国裳,都可以有類似的例子形入。
? ? ? 因此,我的建議是亿遂,在花大量時(shí)間學(xué)習(xí)一門語言之前蛇数,根據(jù)自己的情況來決定選擇哪種編程語言少办,切記千萬不可跟風(fēng)。