摘要:學(xué) Excel 還是 R、Python?機(jī)器學(xué)習(xí)怎么入門?數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家有什么區(qū)別?聽(tīng)聽(tīng)美國(guó) IT 大牛的建議。
去年我決定從傳統(tǒng)水利行業(yè)跨行到 Python 領(lǐng)域的時(shí)候,滿腦子都是困惑與擔(dān)心,猶豫放棄所學(xué)多年的專業(yè)知識(shí)值不值得,擔(dān)心萬(wàn)一轉(zhuǎn)行失敗怎么辦,糾結(jié)實(shí)際工作比想象中的難怎么辦。
沒(méi)遇到指點(diǎn)迷津的大佬,只好網(wǎng)上各種搜,眾說(shuō)紛紜,最后在「要不要轉(zhuǎn)行」這個(gè)問(wèn)題上浪費(fèi)了很長(zhǎng)時(shí)間。在跨過(guò)這個(gè)坎之后,回頭來(lái)看以前那些問(wèn)題,思路清晰很多。
其實(shí),在開(kāi)始階段,相比具體的專業(yè)知識(shí),更重要的是大方向把握。好比,你告訴我旅途上的風(fēng)景有多么多么美,但我想先知道是哪條路,好判斷能不能去到。
最近看到一篇叫「2019 年學(xué)習(xí)數(shù)據(jù)科學(xué)是什么感受」的文章,深有感觸。作者是 Thomas Nield,美國(guó)西南航空公司的商務(wù)顧問(wèn),著有《Getting Started with SQL (O'Reilly) 》等書,經(jīng)驗(yàn)豐富的 IT 大牛。
文章中他以一問(wèn)一答的形式,給那些想要踏上數(shù)據(jù)科學(xué)之路的人,提了一些中肯的建議。里面有些觀點(diǎn)很有價(jià)值,特節(jié)選翻譯成文,這里分享給你。
背景:假設(shè)你是一名「表哥」,平常工作主要使用 Excel,數(shù)據(jù)透視表、制圖表這些。最近了解到未來(lái)很多工作崗位會(huì)被人工智能會(huì)取代,甚至包括你現(xiàn)在的工作。你決定開(kāi)始學(xué)習(xí)數(shù)據(jù)科學(xué)、人工智能和機(jī)器學(xué)習(xí),Google 搜索「如何成為數(shù)據(jù)科學(xué)家」找到了下面這樣一份學(xué)習(xí)路線圖,然后你就開(kāi)始向作者大牛請(qǐng)教。
Q:我是否真的必須掌握這個(gè)圖表中的所有內(nèi)容,才能成為數(shù)據(jù)科學(xué)家?
成為一名數(shù)據(jù)科學(xué)家的必須技能(截至2013年)
A:簡(jiǎn)單說(shuō),不需要全部。這是 2013 年的路線圖,有點(diǎn)過(guò)時(shí)了,里面連 TensorFlow 都沒(méi)有,基本沒(méi)有人再參考。完全可以劃掉這個(gè)圖中的一些路徑,前幾年「數(shù)據(jù)科學(xué)」劃分地過(guò)于分散,采用其他方法會(huì)更好。
Q:聽(tīng)你這樣說(shuō)就不那么緊張了,那么我應(yīng)該回到學(xué)校繼續(xù)深造,然后獲得一個(gè)數(shù)據(jù)科學(xué)碩士學(xué)位嗎? 我看很多數(shù)據(jù)科學(xué)家至少都是碩士。
A:天哪,你為什么這樣做?不要被「數(shù)據(jù)科學(xué)」這些高大上的術(shù)語(yǔ)給唬住了,這些術(shù)語(yǔ)主要是用來(lái)重新定義一些業(yè)務(wù)分類。事實(shí)上,學(xué)校教授的東西基本都是過(guò)時(shí)的技術(shù),不如選擇 Coursera 或 Khan Academy 這些在線自學(xué)網(wǎng)站。
Q:那么我該如何開(kāi)始自學(xué)呢?LinkedIn上的人說(shuō)應(yīng)該先學(xué)習(xí) Linux ,Twitter 的人建議先學(xué)習(xí) Scala,而不是 Python 或 R
A:不要信那些人的話。
Q:好的,R怎么樣?不少人喜歡它。
A:R 擅長(zhǎng)數(shù)學(xué)建模,但 Python 能做的更多,比如數(shù)據(jù)處理和搭建 Web 服務(wù),總之Python 比 R 的學(xué)習(xí)投資回報(bào)率高。
Q:R 在 Tiobe上的排名仍然很高,而且擁有大量的社區(qū)和資源,學(xué)它有什么不好?
如果你只是對(duì)數(shù)學(xué)感興趣,使用 R 完全沒(méi)問(wèn)題,配合 Tidyverse 包更是如虎添翼。但數(shù)據(jù)科學(xué)的應(yīng)用范圍遠(yuǎn)超數(shù)學(xué)和統(tǒng)計(jì)學(xué)。所以相信我,Python 在 2019 年更值得學(xué),學(xué)它不會(huì)讓你后悔。
Q:Python 難學(xué)么?
A:Python 是一種簡(jiǎn)單的語(yǔ)言,可以幫你可以自動(dòng)完成許多任務(wù),做一些很酷的事情。不過(guò)數(shù)據(jù)科學(xué)不僅僅是腳本和機(jī)器學(xué)習(xí),甚至不需要依賴 Python 。
Q:什么意思?
A:Python 這些只是工具,使用這些工具可以從數(shù)據(jù)中獲取洞察力,這個(gè)過(guò)程有時(shí)會(huì)涉及到機(jī)器學(xué)習(xí),但大部分時(shí)間沒(méi)有。簡(jiǎn)單地來(lái)說(shuō),創(chuàng)建圖表也可以算是數(shù)據(jù)科學(xué),所以你甚至不必學(xué)習(xí) Python,使用 Tableau 都行,他們宣稱使用他們的產(chǎn)品就可以「成為數(shù)據(jù)科學(xué)家」。
Q:好吧,但數(shù)據(jù)科學(xué)應(yīng)該不僅僅是制作出漂亮的可視化圖表,Excel 中都可以做到,另外學(xué)習(xí)編程應(yīng)該很有用,告訴我一些 Python 方面的知識(shí)吧
A:學(xué)習(xí) Python,你需要學(xué)習(xí)一些庫(kù),比如用于操作 DataFrame 的 Pandas 、制作圖表的 Matplotlib,實(shí)際上更好的選擇是 Plotly,它用了 d3.js。
Q:我能懂一些,但什么是 DataFrame?
A:它是一種有行和列的數(shù)據(jù)結(jié)構(gòu),類似 Excel 表,使用它可以實(shí)現(xiàn)很酷的轉(zhuǎn)換、透視和聚合等功能。
Q:那 Python 與 Excel 有什么不同?
A:大不相同,你可以在 Jupyter Notebook 中完成所有操作,逐步完成每個(gè)數(shù)據(jù)分析階段并可視化,就像你正在創(chuàng)建一個(gè)可以與他人分享的故事。畢竟,溝通和講故事是數(shù)據(jù)科學(xué)的重要組成部分。
Q:這聽(tīng)起來(lái)和 PowerPoint 沒(méi)什么區(qū)別啊?
A:當(dāng)然有區(qū)別,Jupyter Notebook 更自動(dòng)簡(jiǎn)潔,可以輕松追溯每個(gè)分析步驟。有些人不太喜歡它,因?yàn)榇a不是很實(shí)用。如果你想做一款軟件產(chǎn)品,更好的方法是使用其他工具模塊化封裝代碼。
Q:那么數(shù)據(jù)科學(xué)跟軟件工程也有關(guān)系么?
A:也可以這么說(shuō),但不要走偏,學(xué)習(xí)數(shù)據(jù)科學(xué)最需要的是數(shù)據(jù)。初學(xué)的最佳方式是網(wǎng)絡(luò)爬蟲(chóng),抓取一些網(wǎng)頁(yè),使用 Beautiful Soup 解析它生成大量非結(jié)構(gòu)化文本數(shù)據(jù)下載到電腦上。
Q:我以為學(xué)習(xí)數(shù)據(jù)科學(xué)是做表格查詢而不是網(wǎng)頁(yè)抓取的工作,所以我剛學(xué)完一本 SQL 的書,SQL 不是訪問(wèn)數(shù)據(jù)的典型方式嗎?
A:好吧,我們可以使用非結(jié)構(gòu)化文本數(shù)據(jù)做很多很酷的事情。比如對(duì)社交媒體帖子上的情緒進(jìn)行分類或進(jìn)行自然語(yǔ)言處理。NoSQL 非常擅長(zhǎng)存儲(chǔ)這種類型的數(shù)據(jù)。
Q:我聽(tīng)說(shuō)過(guò) NoSQL 這個(gè)詞,跟 SQL 、大數(shù)據(jù)有什么關(guān)系?
A:大數(shù)據(jù)是 2016 年的概念,已經(jīng)有點(diǎn)過(guò)時(shí)了,現(xiàn)在大多數(shù)人不再使用這個(gè)術(shù)語(yǔ)。NoSQL 是大數(shù)據(jù)的產(chǎn)物,今天發(fā)展成為了像 MongoDB 一樣的平臺(tái)。
Q:好的,但為什么稱它為 NoSQL?
A:NoSQL 代表不僅是 SQL,它支持關(guān)系表之外的數(shù)據(jù)結(jié)構(gòu),不過(guò) NoSQL 數(shù)據(jù)庫(kù)通常不使用 SQL,有專門的查詢語(yǔ)言,簡(jiǎn)單對(duì)比一下 MongoDB 和 SQL 查詢語(yǔ)言:
Q:這太可怕了,你意思是每個(gè) NoSQL 平臺(tái)都有自己的查詢語(yǔ)言?SQL 有什么問(wèn)題?
A:SQL 沒(méi)有任何問(wèn)題,它很有價(jià)值。不過(guò)這幾年非結(jié)構(gòu)化數(shù)據(jù)是熱潮,用它來(lái)做分析更容易。需強(qiáng)調(diào)的是,盡管SQL 難學(xué),但它是一種非常通用的語(yǔ)言。
Q:好的,我可以這樣理解么: NoSQL 對(duì)數(shù)據(jù)科學(xué)家來(lái)說(shuō)不像 SQL 那么重要,除非工作中需要它?
A:差不多,除非你想成為一名數(shù)據(jù)工程師。
Q:數(shù)據(jù)工程師?
A:數(shù)據(jù)科學(xué)家分為兩個(gè)職業(yè)。數(shù)據(jù)工程師為模型提供可用的數(shù)據(jù),機(jī)器學(xué)習(xí)和數(shù)學(xué)建模涉及比較少,這些工作主要由數(shù)據(jù)科學(xué)家來(lái)做。如果你想成為一名數(shù)據(jù)工程師,建議優(yōu)先考慮學(xué)習(xí) Apache Kafka 而不是 NoSQL,Apache Kafka 現(xiàn)在非常熱門。
如果想成為「數(shù)據(jù)科學(xué)家」,可以看看這張數(shù)據(jù)科學(xué)維恩圖。簡(jiǎn)單來(lái)說(shuō),數(shù)據(jù)工程師是一個(gè)多領(lǐng)域交叉的崗位,你需要懂?dāng)?shù)學(xué)/統(tǒng)計(jì)學(xué)、編程以及你專業(yè)方面的知識(shí)。
Q:好吧,我不知道我現(xiàn)在是想成為數(shù)據(jù)科學(xué)家還是數(shù)據(jù)工程師。回過(guò)頭來(lái),為什么要抓維基百科頁(yè)面呢?
A:抓取下來(lái)的頁(yè)面數(shù)據(jù),可以作為自然語(yǔ)言處理的輸入數(shù)據(jù),之后就可以做一些事情,如創(chuàng)建聊天機(jī)器人。
Q:我暫時(shí)應(yīng)該不用接觸自然語(yǔ)言處理、聊天機(jī)器人、非結(jié)構(gòu)化文本數(shù)據(jù)這些吧?
A:不用但值得關(guān)注,像 Google 和 Facebook 這些大公司,目前在處理大量非結(jié)構(gòu)化數(shù)據(jù)(如社交媒體帖子和新聞文章)。除了這些科技巨頭,大部分人仍然在使用關(guān)系數(shù)據(jù)庫(kù)形式的業(yè)務(wù)運(yùn)營(yíng)數(shù)據(jù),使用著不是那么前沿的技術(shù),比如 SQL。
Q:是的,我猜他們還在做挖掘用戶帖子、電子郵件以及廣告之類的事情。
A:是的,你會(huì)發(fā)現(xiàn) Naive Bayes 有趣也很有用。獲取文本正文并預(yù)測(cè)它所屬的類別。先跳過(guò)這塊,你目前的工作是處理大量表格數(shù)據(jù),是想做一些預(yù)測(cè)或統(tǒng)計(jì)分析么?
Q:對(duì)的,我們終于回到正題上了,就是解決實(shí)際問(wèn)題,這是神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的用武之地嗎?
A:不要著急,如果想學(xué)這些,建議從基礎(chǔ)開(kāi)始,比如正態(tài)分布、線性回歸等。
Q:明白,但這些我仍然可以在 Excel 中完成,有什么區(qū)別?
A:你可以在 Excel中 做很多事情,但編程可以獲得更大的靈活性。
Q:你說(shuō)的編程是像 VBA 這樣的么?
A:看來(lái)我需要從頭說(shuō)了。Excel 確實(shí)有很好的統(tǒng)計(jì)運(yùn)算符和不錯(cuò)的線性回歸模型。但如果你需要對(duì)每個(gè)類別的項(xiàng)目進(jìn)行單獨(dú)的正態(tài)分布或回歸,那么使用 Python 要容易得多,而不是創(chuàng)建一長(zhǎng)串的公式,比如下面這樣,這會(huì)讓看公式的人無(wú)比痛苦。除此之外,Python 還有功能強(qiáng)大的 scikit-learn 庫(kù),可以處理更多的回歸和機(jī)器學(xué)習(xí)模型。
Q:這需要涉及到數(shù)學(xué)建模領(lǐng)域是吧,我需要學(xué)習(xí)哪些數(shù)學(xué)知識(shí)?
A:從線性代數(shù)開(kāi)始吧,它是許多數(shù)據(jù)科學(xué)的基礎(chǔ)。你會(huì)處理各種矩陣運(yùn)算、行列式、特征向量這些概念。不得不說(shuō),線性代數(shù)很抽象,如果你想要得到線性代數(shù)的直觀解釋,3Blue1Brown 是最棒的。
(這和我之前寫的一篇文章觀點(diǎn)不謀而合:最棒的高數(shù)和線代入門教程)
Q:就是作大量的線性代數(shù)運(yùn)算?這聽(tīng)起來(lái)毫無(wú)意義和無(wú)聊,能舉個(gè)例子么?
A:好吧,機(jī)器學(xué)習(xí)中會(huì)用到大量的線性代數(shù)知識(shí),比如:線性回歸或構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)時(shí),會(huì)使用隨機(jī)權(quán)重值進(jìn)行大量矩陣乘法和縮放。
Q:好吧,矩陣與 DataFrame 有什么關(guān)系?感覺(jué)很相似。
A:實(shí)際上,我需要收回剛才說(shuō)的話,你可以不用線性代數(shù)。
Q:真的嗎?那我還要不要學(xué)習(xí)線性代數(shù)?
A:就目前而言,你可能不需要學(xué)習(xí)線性代數(shù),直接使用機(jī)器學(xué)習(xí)庫(kù)就行,比如 TensorFlow 和 scikit-learn 這些庫(kù),它們會(huì)幫助你自動(dòng)完成線性代數(shù)部分的工作。不過(guò)你需要對(duì)這些庫(kù)的工作原理有所了解。
Q:說(shuō)到機(jī)器學(xué)習(xí),線性回歸真的算是機(jī)器學(xué)習(xí)嗎?
A:是的,線性回歸是機(jī)器學(xué)習(xí)的敲門磚。
Q:真棒,我一直在 Excel 中這樣做,那我是不是也可以自稱「機(jī)器學(xué)習(xí)從業(yè)者」?
A:技術(shù)上來(lái)說(shuō)是的,不過(guò)你需要擴(kuò)大知識(shí)面。機(jī)器學(xué)習(xí)通常有兩個(gè)任務(wù):回歸或分類。從技術(shù)上講,分類是回歸。決策樹(shù)、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、邏輯回歸以及線性回歸,這些算法都在做某種形式的曲線擬合,每種算法各有優(yōu)缺點(diǎn)。
Q:所以機(jī)器學(xué)習(xí)只是回歸?它們都有效地?cái)M合了曲線?
A:差不多,像線性回歸這樣的一些模型清晰可解釋,而像神經(jīng)網(wǎng)絡(luò)這樣更先進(jìn)的模型定義是復(fù)雜的,并且難以解釋。神經(jīng)網(wǎng)絡(luò)實(shí)際上只是具有一些非線性函數(shù)的多層回歸。當(dāng)你只有 2-3 個(gè)變量時(shí),它可能看起來(lái)不那么令人印象深刻,但是當(dāng)你有數(shù)百或數(shù)千個(gè)變量時(shí)它就開(kāi)始變得有趣了。
Q:那圖像識(shí)別也只是回歸?
A:是的,每個(gè)圖像像素基本上變成具有數(shù)值的輸入變量。你必須警惕維度的詛咒,變量(維度)越多,需要的數(shù)據(jù)越多,以防變得稀疏。這是機(jī)器學(xué)習(xí)如此不可靠和混亂的眾多原因之一,并且需要大量你沒(méi)有的標(biāo)記數(shù)據(jù)。
Q:機(jī)器學(xué)習(xí)能解決安排員工、交通工具、數(shù)獨(dú)所有這些問(wèn)題嗎?
A:當(dāng)你遇到這些類型的問(wèn)題時(shí),有些人會(huì)說(shuō)這不是數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)而是運(yùn)籌學(xué)。
Q:這對(duì)我來(lái)說(shuō)似乎是實(shí)際問(wèn)題。運(yùn)營(yíng)研究與數(shù)據(jù)科學(xué)無(wú)關(guān)?
A:實(shí)際上,存在相當(dāng)多的重疊。運(yùn)籌學(xué)已經(jīng)提供了許多機(jī)器學(xué)習(xí)使用的優(yōu)化算法。它還為常見(jiàn)的 AI 問(wèn)題提供了許多解決方案。
Q:那么我們用什么算法來(lái)解決這些問(wèn)題呢?
A:絕對(duì)不是機(jī)器學(xué)習(xí)算法,很少有人知道這一點(diǎn)。幾十年前就有更好的算法,樹(shù)搜索、元啟發(fā)式、線性規(guī)劃和其他運(yùn)算研究方法已經(jīng)使用了很長(zhǎng)時(shí)間,并且比機(jī)器學(xué)習(xí)算法對(duì)這些類別的問(wèn)題做得更好。
Q:那為什么每個(gè)人都在談?wù)摍C(jī)器學(xué)習(xí)而不是這些算法呢?
A:因?yàn)楹荛L(zhǎng)一段時(shí)間里,這些優(yōu)化算法問(wèn)題已經(jīng)有了令人滿意的解決方案,但自那時(shí)起就一直沒(méi)有成為頭條新聞。幾十年前就出現(xiàn)了這些算法的 AI 炒作周期。如今,AI 炒作重新點(diǎn)燃了機(jī)器學(xué)習(xí)及其解決的問(wèn)題類型:圖像識(shí)別、自然語(yǔ)言處理、圖像生成等。
Q:所以使用機(jī)器學(xué)習(xí)來(lái)解決調(diào)度問(wèn)題,或者像數(shù)獨(dú)一樣簡(jiǎn)單的事情時(shí),這樣做是錯(cuò)誤的嗎?
A:差不多,機(jī)器學(xué)習(xí),深度學(xué)習(xí)這些今天被炒作的任何東西通常都不能解決離散優(yōu)化問(wèn)題,至少不是很好,效果非常不理想。
Q:如果機(jī)器學(xué)習(xí)只是回歸,為什么每個(gè)人都對(duì)機(jī)器人和人工智能,這么憂心忡忡,認(rèn)為會(huì)危害我們的工作和社會(huì)?我的意思是擬合曲線真的那么危險(xiǎn)嗎?AI 在進(jìn)行回歸時(shí)有多少自我意識(shí)?
A:人們已經(jīng)找到了一些巧妙的回歸應(yīng)用,例如在給定的轉(zhuǎn)彎上找到最佳的國(guó)際象棋移動(dòng)(離散優(yōu)化也可以做)或者計(jì)算自動(dòng)駕駛汽車的轉(zhuǎn)向方向。但是大多都是炒作,回歸只能干這些事。
Q:好吧,我要散個(gè)步慢慢消化下。我目前的 Excel 工作感覺(jué)也算「數(shù)據(jù)科學(xué)」,但數(shù)據(jù)科學(xué)家這個(gè)名頭有點(diǎn)虛幻。
A:也許你應(yīng)該關(guān)注一下 IBM。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8496瀏覽量
134218 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86355 -
數(shù)據(jù)科學(xué)
+關(guān)注
關(guān)注
0文章
168瀏覽量
10425
原文標(biāo)題:2019 年,Python 數(shù)據(jù)科學(xué)該怎么學(xué)
文章出處:【微信號(hào):TheBigData1024,微信公眾號(hào):人工智能與大數(shù)據(jù)技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
機(jī)器學(xué)習(xí)賦能的智能光子學(xué)器件系統(tǒng)研究與應(yīng)用

跟老齊學(xué)Python:從入門到精通
python入門圣經(jīng)-高清電子書(建議下載)
學(xué)硬件好還是學(xué)軟件好?
Python從入門到精通背記手冊(cè)
Spire.Cloud.Excel云端Excel文檔處理SDK

傳統(tǒng)機(jī)器學(xué)習(xí)方法和應(yīng)用指導(dǎo)

如何幫助孩子高效學(xué)習(xí)Python:開(kāi)源硬件實(shí)踐是最優(yōu)選擇
【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】時(shí)間序列的信息提取
【《時(shí)間序列與機(jī)器學(xué)習(xí)》閱讀體驗(yàn)】+ 時(shí)間序列的信息提取
AI入門之深度學(xué)習(xí):基本概念篇

評(píng)論