揭秘“21世纪最性感的职业”:数学、编程、沟通和商业技能一个都不能少!...
你的假期已余額不足!
大數(shù)據(jù)(ID:hzdashuju)在長假期間
給你推送6篇入門級(jí)科普,包括:
數(shù)據(jù)與隱私?|?自動(dòng)駕駛?|?AI與就業(yè)
黃金比例?|?量子計(jì)算機(jī)?|?數(shù)據(jù)科學(xué)職業(yè)
另外還為既聰明又努力的孩子們
準(zhǔn)備了一份充電書單
不知你這幾天看了幾篇?
今天是我們一起充電的第7天
導(dǎo)讀:?對(duì)數(shù)據(jù)科學(xué)這個(gè)詞給出一個(gè)一致認(rèn)可的定義,就像品嘗紅酒然后在朋友之間分辨其口感一樣,每個(gè)人都不一樣。每個(gè)人都會(huì)有他自己的定義,沒有誰的更準(zhǔn)確。
然而就其本質(zhì)而言,數(shù)據(jù)科學(xué)是向數(shù)據(jù)提問的藝術(shù):問聰明的問題,得到聰明的有用的回答。不幸的是,反過來也是成立的:笨的問題將得到糟糕的回答!因此,認(rèn)真構(gòu)造你的問題是從數(shù)據(jù)中提取出有價(jià)值洞見的關(guān)鍵。因?yàn)檫@個(gè)原因,公司現(xiàn)在都雇傭數(shù)據(jù)科學(xué)家來幫助構(gòu)建這些問題。
作者:亞歷克斯·特列斯(Alex Tellez)、馬克斯·帕普拉(Max Pumperla)、邁克爾·馬洛赫拉瓦(Michal Malohlava)
本文摘編自《Spark機(jī)器學(xué)習(xí):核心技術(shù)與實(shí)踐》,如需轉(zhuǎn)載請(qǐng)聯(lián)系我們
據(jù)估計(jì),到2018年,全世界的公司在大數(shù)據(jù)有關(guān)的項(xiàng)目上花費(fèi)將達(dá)到1140億美元,相比2013年大約增長300%。
▲持續(xù)增長的大數(shù)據(jù)和數(shù)據(jù)科學(xué)Google Trend
01 數(shù)據(jù)科學(xué)家:21世紀(jì)最性感的職業(yè)
要給出一個(gè)典型數(shù)據(jù)科學(xué)家的古板肖像是很容易的:T恤衫,寬松的運(yùn)動(dòng)褲,邊框厚厚的眼鏡,在IntelliJ里調(diào)試大段的代碼……大致如此。不過,除了外表之外,數(shù)據(jù)科學(xué)家的特征還有哪些?下圖是我們最喜歡的海報(bào)之一,它描述了這個(gè)角色:
▲現(xiàn)代數(shù)據(jù)科學(xué)家
數(shù)據(jù)科學(xué)家,21世紀(jì)最性感的職業(yè),需要各學(xué)科的復(fù)合技能,包括數(shù)學(xué),統(tǒng)計(jì)學(xué),計(jì)算機(jī)科學(xué),溝通力以及商業(yè)技能。找到一位數(shù)據(jù)科學(xué)家是不容易的。找到一位伯樂也同樣困難。為此這里提供了一個(gè)表格來描述什么是真正的數(shù)據(jù)科學(xué)家。
數(shù)學(xué)和統(tǒng)計(jì)學(xué) 機(jī)器學(xué)習(xí) 統(tǒng)計(jì)建模 實(shí)驗(yàn)設(shè)計(jì) 貝葉斯推斷 監(jiān)督學(xué)習(xí):決策樹,隨機(jī)森林,邏輯回歸 非監(jiān)督學(xué)習(xí):聚類,降維 優(yōu)化:梯度下降及其變種 | 編程和數(shù)據(jù)庫 計(jì)算機(jī)科學(xué)基礎(chǔ) 腳本語言,如Python 統(tǒng)計(jì)計(jì)算包,如R 數(shù)據(jù)庫:SQL和NoSQL 關(guān)系代數(shù) 并行數(shù)據(jù)庫和并行查詢處理 MapReduce概念 Hadoop和Hive/Pig 自定義reducers xaaS經(jīng)驗(yàn),如AWS |
領(lǐng)域知識(shí)和軟技能 對(duì)于業(yè)務(wù)的激情 對(duì)于數(shù)據(jù)的好奇 無權(quán)威影響力 駭客精神 問題解決者 有策略,前瞻性和創(chuàng)造力,有創(chuàng)新性和合作精神 | 溝通力和視野 能與資深經(jīng)理合作 講故事的能力 轉(zhuǎn)換數(shù)據(jù)視野為決策和行動(dòng) 可視化藝術(shù)設(shè)計(jì) R包如ggplot或是lattice 任何可視化工具的知識(shí),如Flare,D3.js,Tableau |
數(shù)學(xué)、統(tǒng)計(jì)學(xué)和計(jì)算機(jī)科學(xué)的一般知識(shí)都列出了,但是一個(gè)常常在職業(yè)數(shù)據(jù)科學(xué)家中見到的困難是對(duì)業(yè)務(wù)問題的理解。這又回到向數(shù)據(jù)提問的問題上來,這一點(diǎn)怎么強(qiáng)調(diào)也不為過:一個(gè)數(shù)據(jù)科學(xué)家只有理解了業(yè)務(wù)問題,理解了數(shù)據(jù)的局限性,才能夠向數(shù)據(jù)問出更多聰明的問題;沒有這些根本的理解,即使是最聰明的算法也無法在一個(gè)脆弱的基礎(chǔ)上得出可靠的結(jié)論。
1. 數(shù)據(jù)科學(xué)家的一天
對(duì)你們中間的一些人來說,這個(gè)事實(shí)可能會(huì)讓你驚訝 - 數(shù)據(jù)科學(xué)家不只是喝著濃縮咖啡忙于閱讀學(xué)術(shù)論文、研究新工具和建模直到凌晨;事實(shí)上,這些只占數(shù)據(jù)科學(xué)家相當(dāng)少的一部分時(shí)間(濃縮咖啡倒是100%真的)。一天中的絕大部分時(shí)間,都花在各種會(huì)議里,以更好地理解業(yè)務(wù)問題,分析數(shù)據(jù)的局限性(打起精神,無數(shù)特征工程(feature engineering)和特征提取(feature extraction)的任務(wù)),以及如何能夠把結(jié)果最好地呈現(xiàn)給非數(shù)據(jù)科學(xué)家們,是個(gè)繁雜的過程,最好的數(shù)據(jù)科學(xué)家也需要能夠樂在其中;因?yàn)檫@樣才能更好地理解需求和衡量成功。事實(shí)上,要從頭到尾描述這個(gè)過程,我們完全能夠?qū)懸槐拘聲?#xff01;
那么,向數(shù)據(jù)提問到底涉及哪些方面呢?有時(shí),只是把數(shù)據(jù)存到關(guān)系型數(shù)據(jù)庫里,運(yùn)行一些SQL查詢語句:“購買這個(gè)產(chǎn)品的幾百萬消費(fèi)者同時(shí)購買哪些其他產(chǎn)品?找出最多的前三種。”有時(shí)問題會(huì)更復(fù)雜,如“分析一個(gè)電影評(píng)論是正面的還是負(fù)面的?”對(duì)這些復(fù)雜問題的回答是大數(shù)據(jù)項(xiàng)目對(duì)業(yè)務(wù)真正產(chǎn)生影響的地方,同時(shí)我們也看到新技術(shù)的快速涌現(xiàn),讓這些問題的回答更加簡(jiǎn)單,功能加更豐富。
一些試圖幫助回答數(shù)據(jù)問題的最流行的開源框架包括R、Python、Julia和Octave,所有這些框架在處理小規(guī)模(小于100GB)數(shù)據(jù)集時(shí)表現(xiàn)良好。在這里我們對(duì)數(shù)據(jù)規(guī)模(大數(shù)據(jù)VS小數(shù)據(jù))給出一個(gè)清晰的界定,在工作中一個(gè)總的原則是這樣的:
如果你能夠用Excel來打開你的數(shù)據(jù)集,那么你處理的是小規(guī)模數(shù)據(jù)。
2. 大數(shù)據(jù)處理
如果要處理的數(shù)據(jù)集太大放不進(jìn)單個(gè)計(jì)算機(jī)的內(nèi)存,從而必須分布到一個(gè)集群的多個(gè)節(jié)點(diǎn)上,該怎么處理?比方說,難道不能僅僅通過修改擴(kuò)展一下原來的R代碼,來適應(yīng)多個(gè)計(jì)算節(jié)點(diǎn)的情況?要是事情能這么簡(jiǎn)單就好了。把單機(jī)算法擴(kuò)展到多臺(tái)機(jī)器的困難原因有很多。設(shè)想如下一個(gè)簡(jiǎn)單的例子,一個(gè)文件包含了一系列名字:
B
D
X
A
D
A
我們想算出文件中每個(gè)名字出現(xiàn)的次數(shù)。如果這個(gè)文件能夠裝進(jìn)單機(jī),你可以通過Unix命令組合sort和uniq來解決:
?
輸出如下:
?
然而,如果文件很大需要分布到多臺(tái)機(jī)器上,就有必要采用一種稍微不同的策略,比如把文件進(jìn)行拆分,每個(gè)分片能夠裝入內(nèi)存,對(duì)每個(gè)分片分別進(jìn)行計(jì)算,最后將結(jié)果進(jìn)行匯總。因此,即使是簡(jiǎn)單的任務(wù),像這個(gè)統(tǒng)計(jì)名字出現(xiàn)次數(shù)的例子,在分布式環(huán)境中也會(huì)變得復(fù)雜。
3. 分布式環(huán)境下的機(jī)器學(xué)習(xí)算法
機(jī)器學(xué)習(xí)算法把簡(jiǎn)單任務(wù)組合為復(fù)雜模式,在分布式環(huán)境下變得更為復(fù)雜。以一個(gè)簡(jiǎn)單的決策樹算法為例。這個(gè)算法創(chuàng)建一個(gè)二叉樹來擬合訓(xùn)練數(shù)據(jù)和最小化預(yù)測(cè)錯(cuò)誤。要構(gòu)造這個(gè)二叉樹,必須決定樹有哪些分支,這樣每個(gè)數(shù)據(jù)點(diǎn)都能夠分派到一個(gè)分支上。我們用一個(gè)簡(jiǎn)單的示例來闡述這個(gè)算法:
這是什么顏色?
?
▲二維空間上的紅色和藍(lán)色數(shù)據(jù)點(diǎn)示例
考慮這張圖所描述的情況:一個(gè)二維平面上分布著一些數(shù)據(jù)點(diǎn),著色為紅色和藍(lán)色。決策樹的目標(biāo)是學(xué)習(xí)和概括數(shù)據(jù)的特征,幫助判斷新數(shù)據(jù)點(diǎn)的顏色。在我們這個(gè)例子里,可以很容易地看出來這些數(shù)據(jù)點(diǎn)大致遵循一種國際象棋棋盤的模式,但是算法必須靠自己學(xué)習(xí)出來。它從找到一個(gè)最佳的能把紅點(diǎn)和藍(lán)點(diǎn)劃分開的水平線或者豎直線開始。將這條線存儲(chǔ)在決策樹的根節(jié)點(diǎn)里,然后遞歸地在分塊中執(zhí)行這個(gè)步驟,直到分塊中只有一個(gè)數(shù)據(jù)點(diǎn)時(shí)算法結(jié)束。
▲最終的決策樹及其預(yù)測(cè)與原空間數(shù)據(jù)點(diǎn)的映射
4. 將數(shù)據(jù)拆分到多臺(tái)機(jī)器
現(xiàn)在我們假設(shè)數(shù)據(jù)點(diǎn)非常多,單機(jī)內(nèi)存容納不下,因此我們必須把數(shù)據(jù)分片,每臺(tái)機(jī)器都只包含一部分?jǐn)?shù)據(jù)點(diǎn)。這樣我們解決了內(nèi)存問題,但這也意味著我們現(xiàn)在需要把計(jì)算分布到一個(gè)集群的機(jī)器上。這是和單機(jī)計(jì)算的第一個(gè)不同點(diǎn)。如果數(shù)據(jù)能夠裝進(jìn)一個(gè)單機(jī)的內(nèi)存,對(duì)數(shù)據(jù)做決策會(huì)比較容易,因?yàn)樗惴軌蛲瑫r(shí)訪問所有數(shù)據(jù),但是在分布式算法的情況下,這一點(diǎn)就不再成立了,算法就訪問數(shù)據(jù)而言必須足夠“聰明”。既然我們的目標(biāo)是構(gòu)造一個(gè)決策樹來預(yù)測(cè)平面上新數(shù)據(jù)點(diǎn)的顏色,因此我們需要設(shè)法構(gòu)造出一個(gè)和單機(jī)上一樣的樹。
最原始的解決方案是構(gòu)造一個(gè)簡(jiǎn)單樹,把數(shù)據(jù)點(diǎn)按照機(jī)器邊界分片。不過很顯然不好,因?yàn)閿?shù)據(jù)點(diǎn)分布完全沒有考慮到數(shù)據(jù)點(diǎn)的顏色。
另一種解法是在X軸和Y軸方向上嘗試所有的分片可能,找到把顏色區(qū)分開的最佳劃分,也就是說,能夠把數(shù)據(jù)點(diǎn)分為兩組,每組中一種顏色盡可能多而另一種顏色盡可能少。設(shè)想算法正在測(cè)試按照X = 1.6這條線來分割數(shù)據(jù)。這意味著算法需要詢問集群中的每一臺(tái)機(jī)器,得到每臺(tái)機(jī)器按照這條線分片的結(jié)果,然后匯總決定這條線是不是合適。當(dāng)它找到了一個(gè)最佳的分片方法,它也需要把這個(gè)決定通知集群里所有的機(jī)器,這樣每臺(tái)機(jī)器才能夠知道自己本地每個(gè)數(shù)據(jù)點(diǎn)現(xiàn)在的分片情況。
和單機(jī)情況相比,這個(gè)分布式?jīng)Q策樹構(gòu)造算法更復(fù)雜,而且需要一種分布式計(jì)算方式。如今,隨著集群的普及和對(duì)大數(shù)據(jù)集分析需求的增長,這已經(jīng)是一個(gè)基本需求了。
即便是這樣兩個(gè)簡(jiǎn)單的例子也可以說明,對(duì)于大數(shù)據(jù)集,合適的分布式計(jì)算框架是必須的。具體包括:
分布式存儲(chǔ),即,如果單個(gè)節(jié)點(diǎn)容納不下所有的數(shù)據(jù),需要一種方式來把數(shù)據(jù)分布到多臺(tái)機(jī)器上處理
一個(gè)計(jì)算范式(paradigm),用于處理和轉(zhuǎn)換分布式數(shù)據(jù),使用數(shù)學(xué)(和統(tǒng)計(jì)學(xué))算法和工作流
支持持久化和重用定義好的工作流和模型
支持在生產(chǎn)環(huán)境中部署統(tǒng)計(jì)模型
簡(jiǎn)言之,我們需要一個(gè)框架來支持常見的數(shù)據(jù)科學(xué)任務(wù)。有人會(huì)覺得這不是必需的,因?yàn)閿?shù)據(jù)科學(xué)家更喜歡用一些已有的工具,比如R、Weka,或者Python scikit。但是,這些工具并不是為大規(guī)模分布式數(shù)據(jù)處理和并行計(jì)算設(shè)計(jì)的。即便R和Python有一些庫提供了分布式和并行計(jì)算的有限支持,這些庫都受到一個(gè)根本性的限制,那就是它們的基礎(chǔ)平臺(tái),R和Python,根本不是為這種大規(guī)模數(shù)據(jù)處理和計(jì)算而設(shè)計(jì)的。
5. 從Hadoop MapReduce到Spark
隨著數(shù)據(jù)量的增長,單機(jī)工具已不再能夠滿足工業(yè)界的需求,這給新的數(shù)據(jù)處理方法和工具提供了機(jī)會(huì),尤其是Hadoop MapReduce。MapReduce是基于Google一篇論文提出的想法,MapReduce: Simplified Data Processing on Large Clusters (https://research.google.com/archive/mapreduce.html)。另一方面,MapReduce是一個(gè)通用框架,沒有為創(chuàng)建機(jī)器學(xué)習(xí)工作流提供庫或者任何顯式支持。經(jīng)典MapReudce實(shí)現(xiàn)的另一個(gè)局限是在計(jì)算過程中有很多磁盤I/O操作,沒有充分利用大內(nèi)存帶來的益處。
你已經(jīng)看到了,雖然已經(jīng)有了幾個(gè)機(jī)器學(xué)習(xí)工具和分布式平臺(tái),但沒有哪個(gè)能充分滿足在分布式環(huán)境下進(jìn)行大數(shù)據(jù)機(jī)器學(xué)習(xí)的需求。這為Apache Spark打開了大門。
▲進(jìn)屋來吧,Apache Spark!
Spark在2010年創(chuàng)建于UC Berkeley AMP(Algorithms, Machines, People,算法,機(jī)器,人)實(shí)驗(yàn)室,在創(chuàng)建時(shí)就考慮了速度、易用性和高級(jí)分析功能。Spark和其他分布式框架如Hadoop的一個(gè)關(guān)鍵區(qū)別在于數(shù)據(jù)集可以緩存在內(nèi)存里,這讓它很適合用作機(jī)器學(xué)習(xí),因?yàn)闄C(jī)器學(xué)習(xí)天然需要迭代計(jì)算,而且數(shù)據(jù)科學(xué)家總是需要對(duì)同一塊數(shù)據(jù)進(jìn)行多次訪問。
Spark能夠以多種方式運(yùn)行,包括:
本地模式:在一個(gè)單獨(dú)的主機(jī)上運(yùn)行單個(gè)Java虛擬機(jī)(JVM)
獨(dú)立Spark集群:在多臺(tái)主機(jī)上運(yùn)行多個(gè)JVM
通過資源管理器,如Yarn/Mesos:應(yīng)用部署由資源管理器管理。資源管理器負(fù)責(zé)控制節(jié)點(diǎn)的分配、應(yīng)用、分發(fā)和部署
6. 什么是Databricks
如果你了解Spark項(xiàng)目,你很可能也聽說過一個(gè)叫作Databricks的公司,不過也許不知道Databricks和Spark具體是什么關(guān)系。概要說來, Apache Spark項(xiàng)目的創(chuàng)建者們創(chuàng)建了Databricks公司,貢獻(xiàn)了超過75%的Spark代碼。除了是推動(dòng)Spark開發(fā)的巨大力量之外,Databricks也為開發(fā)人員,管理人員,培訓(xùn)人員和數(shù)據(jù)分析師等提供Spark認(rèn)證。不過Spark代碼庫并不僅僅是由Databricks貢獻(xiàn)的,IBM、Cloudera和微軟也積極參與了Spark的開發(fā)。
順便說來,Databricks也在歐洲和美國組織Spark峰會(huì),一個(gè)頂級(jí)的Spark會(huì)議,一個(gè)了解Spark最新開發(fā)進(jìn)展和他人是如何在各自的生態(tài)里使用Spark的好地方。
7. Spark包含的內(nèi)容
好了,現(xiàn)在假設(shè)你已經(jīng)下載了最新版本的Spark(具體哪個(gè)版本取決于你打算以哪種方式運(yùn)行Spark)而且已經(jīng)運(yùn)行了經(jīng)典的”Hello, World!”程序了……接下來呢?
Spark帶有5個(gè)庫,這些庫既能夠單獨(dú)使用,也能一起工作,取決于具體需要解決的問題。盡可能廣泛地接觸Spark平臺(tái),這樣對(duì)每一個(gè)庫的功能(和局限)有更好的理解。這5個(gè)庫是:
內(nèi)核:Spark的核心基礎(chǔ)設(shè)施,提供了表示和存儲(chǔ)數(shù)據(jù)的原始數(shù)據(jù)類型,稱為RDD(Resilient Distributed Dataset,彈性分布式數(shù)據(jù)集),操作數(shù)據(jù)的任務(wù)(task)和作業(yè)(job)。
SQL:在RDD基礎(chǔ)上提供的用戶友好的API,引入了DataFrame和SQL來操作存儲(chǔ)的數(shù)據(jù)。
MLlib(Machine Learning Library,機(jī)器學(xué)習(xí)庫):這是Spark自身內(nèi)置的機(jī)器學(xué)習(xí)算法庫,可以在Spark應(yīng)用程序中直接使用。
GraphX:供圖和圖相關(guān)計(jì)算使用。在后續(xù)章節(jié)中我們將深入探討。
流(Streaming):支持來自多種數(shù)據(jù)源的實(shí)時(shí)數(shù)據(jù)流,如Kafka、Twitter、Flume、TCP套接字,等等。
Spark平臺(tái)也支持第三方庫擴(kuò)展。現(xiàn)在已經(jīng)有很多的第三方庫,如支持讀取CSV或Avro格式的文件,與Redshift集成的,以及封裝了H2O機(jī)器學(xué)習(xí)庫的Sparkling Water。
02 H2O.ai簡(jiǎn)介
H2O是一個(gè)開源機(jī)器學(xué)習(xí)平臺(tái),在Spark上運(yùn)行得非常好;事實(shí)上它是第一批被Spark認(rèn)證的第三方擴(kuò)展包。
Sparkling Water(H2O + Spark)把H2O平臺(tái)整合進(jìn)Spark,因此同時(shí)具有H2O的機(jī)器學(xué)習(xí)能力和Spark的全部功能,也就是說,用戶可以在Spark RDD/DataFrame上跑H2O算法,既可以出于實(shí)驗(yàn)?zāi)康?#xff0c;也可以用于部署。之所以成為可能,是因?yàn)镠2O和Spark共享JVM,因此在兩個(gè)平臺(tái)之間,數(shù)據(jù)可以無縫傳輸。H2O以H2O frame的格式存儲(chǔ)數(shù)據(jù),是Spark RDD/DataFrame經(jīng)過列壓縮后的數(shù)據(jù)集表示形式。
Sparkling Water的功能簡(jiǎn)要包括:
在Spark工作流中使用H2O算法
在Spark和H2O數(shù)據(jù)結(jié)構(gòu)之間做數(shù)據(jù)轉(zhuǎn)換
使用Spark RDD/DataFrame 作為H2O算法輸入
使用H2O frame作為MLlib算法輸入(在我們?cè)谝院笞鎏卣鞴こ虝r(shí)會(huì)很方便)
在Spark上透明執(zhí)行Sparkling Water程序(比如,我們可以在Spark Streaming內(nèi)運(yùn)行Sparkling Water程序)
使用H2O用戶界面來瀏覽Spark數(shù)據(jù)
Sparkling Water的設(shè)計(jì)
Sparkling Water設(shè)計(jì)為一個(gè)普通的Spark程序運(yùn)行。因此,它作為一個(gè)程序提交給Spark,在Spark執(zhí)行器中啟動(dòng)。隨后H2O啟動(dòng)它的各種服務(wù),包括一個(gè)鍵值存儲(chǔ)器(key-value store)和一個(gè)內(nèi)存管理器,并把它們組織成一個(gè)云,其拓?fù)浜偷讓拥腟park 集群拓?fù)湟恢隆?/span>
如前所述,Sparkling Water支持在不同類型的RDD/DataFrame和H2O frame之間來回轉(zhuǎn)換。在把hex frame轉(zhuǎn)換為RDD時(shí),數(shù)據(jù)并沒有做復(fù)制,而是在hex frame外做了一層包裝,提供一個(gè)類似RDD的API,支持此API的是里面的hex frame。而把RDD/DataFrame轉(zhuǎn)換為H2O frame則需要做數(shù)據(jù)復(fù)制,因?yàn)樾枰褦?shù)據(jù)從Spark轉(zhuǎn)換進(jìn)H2O自身的存儲(chǔ)。不過,存儲(chǔ)在H2O frame中的數(shù)據(jù)高度壓縮,不再需要保持在RDD中。
▲sparkling water和 Spark之間共享數(shù)據(jù)
03 H2O和Spark MLlib的區(qū)別
如前所述,MLlib是一個(gè)用Spark構(gòu)建的庫,包含流行的機(jī)器學(xué)習(xí)算法。一點(diǎn)也不奇怪,H2O和MLlib有很多共同的算法,但是在實(shí)現(xiàn)和功能上有所區(qū)別。H2O提供了一個(gè)非常方便的功能,允許用戶可視化數(shù)據(jù)和執(zhí)行特征工程任務(wù),這一點(diǎn)我們?cè)诤罄m(xù)章節(jié)中會(huì)深入討論。其數(shù)據(jù)可視化是基于一個(gè)web友好的圖形界面,可以在code shell和一個(gè)類似記事本的環(huán)境之間無縫切換。下圖是一個(gè)H2O記事本示例 - 稱為Flow - 你很快就會(huì)熟悉:
?
H2O提供的另一個(gè)非常好的功能是允許數(shù)據(jù)科學(xué)家使用網(wǎng)格搜索很多算法自帶的超參數(shù)。網(wǎng)格搜索是一個(gè)為了簡(jiǎn)化模型配置,優(yōu)化算法所有超參數(shù)的方式。想知道哪個(gè)超參數(shù)需要修改和如何修改通常是困難的,網(wǎng)格搜索允許我們同時(shí)試驗(yàn)很多超參數(shù),測(cè)量其輸出,然后根據(jù)質(zhì)量需求選擇最好的模型。H2O網(wǎng)格搜索可以和模型交叉驗(yàn)證及多種停止條件組合,產(chǎn)生一些高級(jí)策略,如從一個(gè)超空間許多的參數(shù)中選擇1000個(gè)隨機(jī)參數(shù),找到一個(gè)最佳模型,可以在2分鐘內(nèi)完成訓(xùn)練并使AUC大于0.7。
04 數(shù)據(jù)整理
問題域的原始數(shù)據(jù)常常來自不同的源,有著不同且往往不兼容的格式。Spark編程模型的美在于它擁有自定義數(shù)據(jù)操作來處理輸入數(shù)據(jù),轉(zhuǎn)換為一個(gè)可供將來特征工程和模型構(gòu)建使用的普通格式的能力。這個(gè)過程通常稱為數(shù)據(jù)整理,也是很多數(shù)據(jù)科學(xué)項(xiàng)目成功的關(guān)鍵所在。
05 數(shù)據(jù)科學(xué):一個(gè)迭代過程
大數(shù)據(jù)項(xiàng)目的處理流程通常是迭代的,即反復(fù)測(cè)試新的想法、新的功能,調(diào)整各種超參數(shù)等,保持一種快速失敗(fast fail)的想法。這些項(xiàng)目的最終結(jié)果通常是一個(gè)模型,能夠回答提出的問題。注意我們并沒有說要精確回答。如今很多大數(shù)據(jù)科學(xué)家碰到一個(gè)陷阱,他們的模型不能泛化來適應(yīng)新的數(shù)據(jù),也就是說他們過度擬合了已有數(shù)據(jù),導(dǎo)致模型在處理新數(shù)據(jù)時(shí)表現(xiàn)糟糕。精確性是極度任務(wù)相關(guān)的,通常取決于業(yè)務(wù)的需要,加上對(duì)模型輸出的成本收益敏感度分析。
關(guān)于作者:亞歷克斯·特列斯,一名終身的數(shù)據(jù)黑客/愛好者,對(duì)數(shù)據(jù)科學(xué)及其在商業(yè)問題上的應(yīng)用充滿了激情。他在多個(gè)行業(yè)擁有豐富的經(jīng)驗(yàn),包括銀行業(yè)、醫(yī)療保健、在線約會(huì)、人力資源和在線游戲。
馬克斯·帕普拉,一名數(shù)據(jù)科學(xué)家和工程師,專注于深度學(xué)習(xí)及其應(yīng)用。他目前在Skymind擔(dān)任深度學(xué)習(xí)工程師,并且是aetros.com的聯(lián)合創(chuàng)始人。Max是幾個(gè)Python軟件包的作者和維護(hù)者,包括elephas,一個(gè)使用Spark的分布式深度學(xué)習(xí)庫。他的開源足跡包括對(duì)許多流行的機(jī)器學(xué)習(xí)庫的貢獻(xiàn),如keras、deeplearning4j和hyperopt。
邁克爾·馬洛赫拉瓦,Sparkling Water的創(chuàng)建者、極客和開發(fā)者,Java、Linux、編程語言愛好者,擁有10年以上的軟件開發(fā)經(jīng)驗(yàn)。他于2012年在布拉格的查爾斯大學(xué)獲得博士學(xué)位,并在普渡大學(xué)攻讀博士后。?
本文摘編自《Spark機(jī)器學(xué)習(xí):核心技術(shù)與實(shí)踐》,經(jīng)出版方授權(quán)發(fā)布。
延伸閱讀《Spark機(jī)器學(xué)習(xí)》
點(diǎn)擊上圖了解及購買
轉(zhuǎn)載請(qǐng)聯(lián)系微信:togo-maruko
推薦語:以實(shí)踐方式助你掌握Spark機(jī)器學(xué)習(xí)技術(shù)。
更多精彩
在公眾號(hào)后臺(tái)對(duì)話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
PPT?|?報(bào)告?|?讀書?|?書單
Python?|?機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?神經(jīng)網(wǎng)絡(luò)
區(qū)塊鏈?|?揭秘?|?干貨?|?數(shù)學(xué)
猜你想看
長假還沒安排?這7本書和7部影視作品,讓你宅家或者堵在路上都一樣精彩
一言不合暴打產(chǎn)品經(jīng)理、槍殺同事?5本書,帶你告別低情商
數(shù)據(jù)可視化干貨:使用pandas和seaborn制作炫酷圖表(附代碼)
一文讀懂AI簡(jiǎn)史:當(dāng)年各國燒錢許下的愿,有些至今仍未實(shí)現(xiàn)
Q:?你的職業(yè)夠性感嗎?
歡迎留言與大家分享
覺得不錯(cuò),請(qǐng)把這篇文章分享給你的朋友
轉(zhuǎn)載 / 投稿請(qǐng)聯(lián)系:baiyu@hzbook.com
更多精彩,請(qǐng)?jiān)诤笈_(tái)點(diǎn)擊“歷史文章”查看
點(diǎn)擊閱讀原文,了解更多
總結(jié)
以上是生活随笔為你收集整理的揭秘“21世纪最性感的职业”:数学、编程、沟通和商业技能一个都不能少!...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手绘导图版:深入解析机器学习在风控场景中
- 下一篇: 智能驾驶系统是怎样看懂交通标志的?3张流