數(shù)據(jù)科學(xué)該怎么學(xué)?必備技能有哪些?
最近,一份數(shù)據(jù)科學(xué)領(lǐng)域的學(xué)習(xí)寶典在推特上火了,吸引點(diǎn)贊1k+。
之所以能夠引起大家的關(guān)注,是因?yàn)檫@份教程將數(shù)據(jù)科學(xué)廣而雜的知識(shí)內(nèi)容,梳理成了14個(gè)方面及各自要點(diǎn),同時(shí)解答了許多學(xué)習(xí)中的常見(jiàn)疑問(wèn)。
比如“用什么語(yǔ)言比較好”、“哪些工具最適合”。
這份學(xué)習(xí)寶典的作者為Matt Dancho,他是一個(gè)數(shù)據(jù)科學(xué)學(xué)習(xí)網(wǎng)站的創(chuàng)始人。
那么,具體這份干貨到底講了什么?是否真的如此神奇?
我們一起來(lái)看。
更推薦R語(yǔ)言
進(jìn)入正題之前,我們先來(lái)淺聊一下數(shù)據(jù)科學(xué)(Data Science)。
數(shù)據(jù)科學(xué)是指通過(guò)挖掘數(shù)據(jù)、處理數(shù)據(jù)、分析數(shù)據(jù),從而得到有用信息的技術(shù)和研究,再將這些信息應(yīng)用到不同領(lǐng)域的各個(gè)方面。
該學(xué)科結(jié)合了諸多領(lǐng)域中的理論和技術(shù),包括應(yīng)用數(shù)學(xué)、統(tǒng)計(jì)、模式識(shí)別、機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化、數(shù)據(jù)倉(cāng)庫(kù)以及高性能計(jì)算等,覆蓋知識(shí)面非常廣。
作者表示想要掌握這些技能,大概每周要投入10個(gè)小時(shí)來(lái)學(xué)習(xí)。
那么在開(kāi)始真正學(xué)習(xí)之前,先來(lái)看一個(gè)最關(guān)鍵的問(wèn)題——
用什么語(yǔ)言?
在這里,作者認(rèn)為選擇R語(yǔ)言或者Python都可以。
如果從從業(yè)角度出發(fā),他會(huì)考慮以下三個(gè)因素:
編程語(yǔ)言對(duì)數(shù)據(jù)科學(xué)的影響有多大?就業(yè)市場(chǎng)的需求如何?就業(yè)市場(chǎng)的競(jìng)爭(zhēng)力如何?
第一方面,作者直接將二者進(jìn)行了對(duì)比。
Python非常適合機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。但是在市場(chǎng)報(bào)告方面的優(yōu)勢(shì)不大,能用于統(tǒng)計(jì)經(jīng)濟(jì)學(xué)等重要領(lǐng)域的庫(kù)比較少。
R語(yǔ)言在業(yè)務(wù)分析、數(shù)據(jù)科學(xué)方面都擁有完善的工具支持,在深度學(xué)習(xí)方面的應(yīng)用比較弱。
不過(guò)作者認(rèn)為,深度學(xué)習(xí)在數(shù)據(jù)科學(xué)中的應(yīng)用不多,而且在需要深度學(xué)習(xí)或者其他API時(shí),R語(yǔ)言可以和Python集合。
再?gòu)木蜆I(yè)市場(chǎng)角度來(lái)看。
作者統(tǒng)計(jì)了美國(guó)招聘市場(chǎng)上的數(shù)據(jù)。
結(jié)果顯示,Python方面在招職位的數(shù)量,是R語(yǔ)言的2.4倍。
但是了解、掌握Python的人,也比掌握R語(yǔ)言的更多。
可能達(dá)到4-32倍。
最終作者認(rèn)為,選擇R語(yǔ)言更有優(yōu)勢(shì)。
那么還有一些其他基礎(chǔ)技能呢?
比如推薦使用Excel嗎?
作者認(rèn)為,雖然Excel的使用人群更廣、商務(wù)人士非常喜愛(ài),但是它在處理機(jī)器學(xué)習(xí)、大數(shù)據(jù)方面都不具有優(yōu)勢(shì),而且單元格中的函數(shù)也容易報(bào)錯(cuò)。
所以,建議大家慎重使用Excel。
而在選用什么開(kāi)發(fā)工具方面,作者展開(kāi)了一項(xiàng)小調(diào)查。
針對(duì)喜歡使用R語(yǔ)言的人群,RStudio是大家最喜愛(ài)的開(kāi)發(fā)工具。
Python方面,Jupyter、VSCode更受人們歡迎。
在這里作者沒(méi)有給出明確的推薦,大家可以按照喜好選擇。
只需4步,上手?jǐn)?shù)據(jù)科學(xué)
接下來(lái),就到了正式學(xué)習(xí)的環(huán)節(jié)。
大致可以分為4個(gè)步驟:
掌握基礎(chǔ)技能學(xué)習(xí)建模學(xué)習(xí)時(shí)間序列分析將模型集成到應(yīng)用程序
所需要點(diǎn)亮的技能樹(shù)如下所示:
看到這里,先不要頭皮發(fā)麻……作者給出了一些具體的學(xué)習(xí)tips。
第一,從基礎(chǔ)技能學(xué)起。
可能很多人一上來(lái)就想搞定機(jī)器學(xué)習(xí),但這可能會(huì)影響學(xué)習(xí)興趣&效率。
作者用R語(yǔ)言進(jìn)行了示范,列舉了一些基礎(chǔ)技能:
導(dǎo)入數(shù)據(jù):使用數(shù)據(jù)庫(kù),連接到SQL,readr包, readxl包;轉(zhuǎn)換數(shù)據(jù):處理異常值、缺失數(shù)據(jù)、重塑數(shù)據(jù)、聚合、過(guò)濾等;可視化數(shù)據(jù):靜態(tài)/交互式數(shù)據(jù)可視化,ggplot2以及plotly;處理文本數(shù)據(jù)、函數(shù)式編程……
如果以上這些基礎(chǔ)技能都掌握后,接下來(lái)就可以學(xué)習(xí)機(jī)器學(xué)習(xí)了。
在這里,可能有人會(huì)疑惑,不應(yīng)該先學(xué)習(xí)數(shù)學(xué)、統(tǒng)計(jì)和算法嗎?
對(duì)此作者認(rèn)為,如果從頭開(kāi)始學(xué)習(xí)如何編寫算法,可能并不是快速上手?jǐn)?shù)據(jù)分析。
所以,他更推薦從實(shí)戰(zhàn)中學(xué)習(xí)這些技能。
簡(jiǎn)單來(lái)看可以分為三步:
把機(jī)器學(xué)習(xí)應(yīng)用在實(shí)際問(wèn)題上;嘗試使用不同的算法;對(duì)比不同的應(yīng)用結(jié)果。
在這方面需要用到哪些工具呢?
Tidymodels和H2O是作者推薦的兩個(gè)軟件包。
另外,Recipes中具有很多預(yù)處理工具,可以轉(zhuǎn)換數(shù)據(jù)、創(chuàng)建數(shù)據(jù)特征。
接下來(lái),作者推薦你開(kāi)始學(xué)習(xí)時(shí)間序列分析。
因?yàn)檫@個(gè)技能意味著你可以對(duì)未來(lái)的一些數(shù)據(jù)進(jìn)行預(yù)測(cè),掌握這項(xiàng)技能也會(huì)使你成為大廠手中炙手可熱的人才。
在這方面,你需要掌握的技能如下:
時(shí)間序列分析:處理日期/日期時(shí)間數(shù)據(jù)、聚合、轉(zhuǎn)換、可視化時(shí)間序列、使用timetk預(yù)測(cè):ARIMA、指數(shù)平滑、Prophet、機(jī)器學(xué)習(xí)(XGBoost、隨機(jī)森林、GLMnet 等)、深度學(xué)習(xí)(GluonTS)、集成、調(diào)整超參數(shù)、擴(kuò)展預(yù)測(cè)、modeltime包。
進(jìn)行到這一步后,你就可以嘗試去創(chuàng)建一個(gè)模型并投入使用了。
在這里,作者推薦了一個(gè)能夠?qū)⒛P图傻綉?yīng)用程序中的工具——Shiny。
這個(gè)程序包可以用來(lái)創(chuàng)建交互式Web應(yīng)用程序,代碼可以在本地或服務(wù)器上托管。
One More Thing
看完這份技能樹(shù)后,也有網(wǎng)友提出了疑問(wèn):
為什么沒(méi)有看到深度學(xué)習(xí)?
作者回復(fù)表示:針對(duì)商業(yè)應(yīng)用,機(jī)器學(xué)習(xí)會(huì)更實(shí)用。
作者表示,有位小哥在他們網(wǎng)站選擇了快速進(jìn)修的課程后,得到了微軟機(jī)器學(xué)習(xí)工程師的offer。
當(dāng)然,這份完整的學(xué)習(xí)計(jì)劃是可以白嫖的(鏈接請(qǐng)見(jiàn)文末)。
對(duì)于這篇分享,你怎么看?
歡迎留言討論~
學(xué)習(xí)清單:https://www.business-science.io/r-cheatsheet
評(píng)論