歡迎光臨
每天分享高質量文章

2019年資料科學最強入門指南

導讀:學 Excel 還是 R、Python?機器學習怎麼入門?資料工程師和資料科學家有什麼區別?聽聽美國 IT 大牛的建議。

最近看到一篇叫「2019 年學習資料科學是什麼感受」的文章,深有感觸。作者是 Thomas Nield,美國西南航空公司的商務顧問,著有《Getting Started with SQL (O’Reilly) 》等書,經驗豐富的 IT 大牛。

文章中他以一問一答的形式,給那些想要踏上資料科學之路的人,提了一些中肯的建議。裡面有些觀點很有價值,特節選翻譯成文,這裡分享給你。

 

 

作者:Thomas Nield

譯者:蘇克1900

來源:高級農民工(ID:Mocun6)

 

背景:假設你是一名「表哥」,平常工作主要使用 Excel,資料透視表、製圖表這些。最近瞭解到未來很多工作崗位會被人工智慧會取代,甚至包括你現在的工作。

你決定開始學習資料科學、人工智慧和機器學習,Google 搜索「如何成為資料科學家」找到了下麵這樣一份學習路線圖,然後你就開始向作者大牛請教。

 

Q:我是否真的必須掌握這個圖表中的所有內容,才能成為資料科學家?

▲成為一名資料科學家的必須技能(截至2013年)

A:簡單說,不需要全部。這是 2013 年的路線圖,有點過時了,裡面連 TensorFlow 都沒有,基本沒有人再參考。完全可以劃掉這個圖中的一些路徑,前幾年「資料科學」劃分地過於分散,採用其他方法會更好。

Q:聽你這樣說就不那麼緊張了,那麼我應該回到學校繼續深造,然後獲得一個資料科學碩士學位嗎? 我看很多資料科學家至少都是碩士。

A:天哪,你為什麼這樣做?不要被「資料科學」這些高大上的術語給唬住了,這些術語主要是用來重新定義一些業務分類。事實上,學校教授的東西基本都是過時的技術,不如選擇 Coursera 或 Khan Academy 這些在線自學網站。

Q:那麼我該如何開始自學呢?LinkedIn上的人說應該先學習 Linux ,Twitter 的人建議先學習 Scala,而不是 Python 或 R

A:不要信那些人的話。

Q:好的,R怎麼樣?不少人喜歡它。

A:R 擅長數學建模,但 Python 能做的更多,比如資料處理和搭建 Web 服務,總之 Python 比 R 的學習投資回報率高。

Q:R 在 Tiobe上的排名仍然很高,而且擁有大量的社區和資源,學它有什麼不好?

如果你只是對數學感興趣,使用 R 完全沒問題,配合 Tidyverse 包更是如虎添翼。但資料科學的應用範圍遠超數學和統計學。所以相信我,Python 在 2019 年更值得學,學它不會讓你後悔。

Q:Python 難學麽?

A:Python 是一種簡單的語言,可以幫你可以自動完成許多任務,做一些很酷的事情。不過資料科學不僅僅是腳本和機器學習,甚至不需要依賴 Python 。

Q:什麼意思?

A:Python 這些只是工具,使用這些工具可以從資料中獲取洞察力,這個過程有時會涉及到機器學習,但大部分時間沒有。簡單地來說,創建圖表也可以算是資料科學,所以你甚至不必學習 Python,使用 Tableau 都行,他們宣稱使用他們的產品就可以「成為資料科學家」。

Q:好吧,但資料科學應該不僅僅是製作出漂亮的可視化圖表,Excel 中都可以做到,另外學習編程應該很有用,告訴我一些 Python 方面的知識吧

A:學習 Python,你需要學習一些庫,比如用於操作 DataFrame 的 Pandas 、製作圖表的 Matplotlib,實際上更好的選擇是 Plotly,它用了 d3.js。

Q:我能懂一些,但什麼是 DataFrame?

A:它是一種有行和列的資料結構,類似 Excel 表,使用它可以實現很酷的轉換、透視和聚合等功能。

Q:那 Python 與 Excel 有什麼不同?

A:大不相同,你可以在 Jupyter Notebook 中完成所有操作,逐步完成每個資料分析階段並可視化,就像你正在創建一個可以與他人分享的故事。畢竟,溝通和講故事是資料科學的重要組成部分。

Q:這聽起來和 PowerPoint 沒什麼區別啊?

A:當然有區別,Jupyter Notebook 更自動簡潔,可以輕鬆追溯每個分析步驟。有些人不太喜歡它,因為代碼不是很實用。如果你想做一款軟體產品,更好的方法是使用其他工具模塊化封裝代碼。

Q:那麼資料科學跟軟體工程也有關係麽?

A:也可以這麼說,但不要走偏,學習資料科學最需要的是資料。初學的最佳方式是網絡爬蟲,抓取一些網頁,使用 Beautiful Soup 解析它生成大量非結構化文本資料下載到電腦上。

Q:我以為學習資料科學是做表格查詢而不是網頁抓取的工作,所以我剛學完一本 SQL 的書,SQL 不是訪問資料的典型方式嗎?

A:好吧,我們可以使用非結構化文本資料做很多很酷的事情。比如對社交媒體帖子上的情緒進行分類或進行自然語言處理。NoSQL 非常擅長儲存這種型別的資料。

Q:我聽說過 NoSQL 這個詞,跟 SQL 、大資料有什麼關係?

A:大資料是 2016 年的概念,已經有點過時了,現在大多數人不再使用這個術語。NoSQL 是大資料的產物,今天發展成為了像 MongoDB 一樣的平臺。

Q:好的,但為什麼稱它為 NoSQL?

A:NoSQL 代表不僅是 SQL,它支持關係表之外的資料結構,不過 NoSQL 資料庫通常不使用 SQL,有專門的查詢語言,簡單對比一下 MongoDB 和 SQL 查詢語言:

Q:這太可怕了,你意思是每個 NoSQL 平臺都有自己的查詢語言?SQL 有什麼問題?

A:SQL 沒有任何問題,它很有價值。不過這幾年非結構化資料是熱潮,用它來做分析更容易。需強調的是,儘管 SQL 難學,但它是一種非常通用的語言。

Q:好的,我可以這樣理解麽: NoSQL 對資料科學家來說不像 SQL 那麼重要,除非工作中需要它?

A:差不多,除非你想成為一名資料工程師。

Q:資料工程師?

A:資料科學家分為兩個職業。資料工程師為模型提供可用的資料,機器學習和數學建模涉及比較少,這些工作主要由資料科學家來做。如果你想成為一名資料工程師,建議優先考慮學習 Apache Kafka 而不是 NoSQL,Apache Kafka 現在非常熱門。

如果想成為「資料科學家」,可以看看這張資料科學維恩圖。簡單來說,資料工程師是一個多領域交叉的崗位,你需要懂數學/統計學、編程以及你專業方面的知識。

Q:好吧,我不知道我現在是想成為資料科學家還是資料工程師。回過頭來,為什麼要抓維基百科頁面呢?

A:抓取下來的頁面資料,可以作為自然語言處理的輸入資料,之後就可以做一些事情,如創建聊天機器人。

Q:我暫時應該不用接觸自然語言處理、聊天機器人、非結構化文本資料這些吧?

A:不用但值得關註,像 Google 和 Facebook 這些大公司,目前在處理大量非結構化資料(如社交媒體帖子和新聞文章)。除了這些科技巨頭,大部分人仍然在使用關係資料庫形式的業務運營資料,使用著不是那麼前沿的技術,比如 SQL。

Q:是的,我猜他們還在做挖掘用戶帖子、電子郵件以及廣告之類的事情。

A:是的,你會發現 Naive Bayes 有趣也很有用。獲取文本正文並預測它所屬的類別。先跳過這塊,你目前的工作是處理大量表格資料,是想做一些預測或統計分析麽?

Q:對的,我們終於回到正題上了,就是解決實際問題,這是神經網絡和深度學習的用武之地嗎?

A:不要著急,如果想學這些,建議從基礎開始,比如正態分佈、線性回歸等。

Q:明白,但這些我仍然可以在 Excel 中完成,有什麼區別?

A:你可以在 Excel 中做很多事情,但編程可以獲得更大的靈活性。

Q:你說的編程是像 VBA 這樣的麽?

A:看來我需要從頭說了。Excel 確實有很好的統計運算子和不錯的線性回歸模型。但如果你需要對每個類別的專案進行單獨的正態分佈或回歸,那麼使用 Python 要容易得多,而不是創建一長串的公式,比如下麵這樣,這會讓看公式的人無比痛苦。除此之外,Python 還有功能強大的 scikit-learn 庫,可以處理更多的回歸和機器學習模型。

Q:這需要涉及到數學建模領域是吧,我需要學習哪些數學知識?

A:從線性代數開始吧,它是許多資料科學的基礎。你會處理各種矩陣運算、行列式、特征向量這些概念。不得不說,線性代數很抽象,如果你想要得到線性代數的直觀解釋,3Blue1Brown 是最棒的。

Q:就是作大量的線性代數運算?這聽起來毫無意義和無聊,能舉個例子麽?

A:好吧,機器學習中會用到大量的線性代數知識,比如:線性回歸或構建自己的神經網絡時,會使用隨機權重值進行大量矩陣乘法和縮放。

Q:好吧,矩陣與 DataFrame 有什麼關係?感覺很相似。

A:實際上,我需要收回剛纔說的話,你可以不用線性代數。

Q:真的嗎?那我還要不要學習線性代數?

A:就目前而言,你可能不需要學習線性代數,直接使用機器學習庫就行,比如 TensorFlow 和 scikit-learn 這些庫,它們會幫助你自動完成線性代數部分的工作。不過你需要對這些庫的工作原理有所瞭解。

Q:說到機器學習,線性回歸真的算是機器學習嗎?

A:是的,線性回歸是機器學習的敲門磚。

Q:真棒,我一直在 Excel 中這樣做,那我是不是也可以自稱「機器學習從業者」?

A:技術上來說是的,不過你需要擴大知識面。機器學習通常有兩個任務:回歸或分類。從技術上講,分類是回歸。決策樹、神經網絡、支持向量機、邏輯回歸以及線性回歸,這些演算法都在做某種形式的曲線擬合,每種演算法各有優缺點。

Q:所以機器學習只是回歸?它們都有效地擬合了曲線?

A:差不多,像線性回歸這樣的一些模型清晰可解釋,而像神經網絡這樣更先進的模型定義是複雜的,並且難以解釋。神經網絡實際上只是具有一些非線性函式的多層回歸。當你只有 2-3 個變數時,它可能看起來不那麼令人印象深刻,但是當你有數百或數千個變數時它就開始變得有趣了。

Q:那圖像識別也只是回歸?

A:是的,每個圖像像素基本上變成具有數值的輸入變數。你必須警惕維度的詛咒,變數(維度)越多,需要的資料越多,以防變得稀疏。這是機器學習如此不可靠和混亂的眾多原因之一,並且需要大量你沒有的標記資料。

Q:機器學習能解決安排員工、交通工具、數獨所有這些問題嗎?

A:當你遇到這些型別的問題時,有些人會說這不是資料科學或機器學習而是運籌學。

Q:這對我來說似乎是實際問題。運營研究與資料科學無關?

A:實際上,存在相當多的重疊。運籌學已經提供了許多機器學習使用的優化演算法。它還為常見的 AI 問題提供了許多解決方案。

Q:那麼我們用什麼演算法來解決這些問題呢?

A:絕對不是機器學習演算法,很少有人知道這一點。幾十年前就有更好的演算法,樹搜索、元啟髮式、線性規劃和其他運算研究方法已經使用了很長時間,並且比機器學習演算法對這些類別的問題做得更好。

Q:那為什麼每個人都在談論機器學習而不是這些演算法呢?

A:因為很長一段時間里,這些優化演算法問題已經有了令人滿意的解決方案,但自那時起就一直沒有成為頭條新聞。幾十年前就出現了這些演算法的 AI 炒作周期。如今,AI 炒作重新點燃了機器學習及其解決的問題型別:圖像識別、自然語言處理、圖像生成等。

Q:所以使用機器學習來解決調度問題,或者像數獨一樣簡單的事情時,這樣做是錯誤的嗎?

A:差不多,機器學習,深度學習這些今天被炒作的任何東西通常都不能解決離散優化問題,至少不是很好,效果非常不理想。

Q:如果機器學習只是回歸,為什麼每個人都對機器人和人工智慧,這麼憂心忡忡,認為會危害我們的工作和社會?我的意思是擬合曲線真的那麼危險嗎?AI 在進行回歸時有多少自我意識?

A:人們已經找到了一些巧妙的回歸應用,例如在給定的轉彎上找到最佳的國際象棋移動(離散優化也可以做)或者計算自動駕駛汽車的轉向方向。但是大多都是炒作,回歸只能幹這些事。

Q:好吧,我要散個步慢慢消化下。我目前的 Excel 工作感覺也算「資料科學」,但資料科學家這個名頭有點虛幻。

A:也許你應該關註一下 IBM。

原文:How it feels to learn data science in 2019

https://towardsdatascience.com/how-it-feels-to-learn-data-science-in-2019-6ee688498029

    赞(0)

    分享創造快樂