數據科學(Data Science)自學指南 2020 版(一)

2021-01-21 36kr

神譯局是36氪旗下編譯團隊,關注科技、商業、職場、生活等領域,重點介紹國外的新技術、新觀點、新風向。

編者按:數據科學家是21世紀最性感的職業。我學的不是這個專業,真可惜。沒關係,中途上車還來得及。一位化學工程專業的畢業生拿到的第一份工作就是數據分析師。他是怎麼做到的?自學。他是怎麼自學的呢?且看Travis Tang的詳細介紹。原文發標題是:How to Teach Yourself Data Science in 2020

第1部分——SQL、Python、R語言及數據可視化

最近,我剛剛從化學工程專業畢業,但我的第一份工作是在一家科技公司擔任數據分析師。我把自己從化學工程走到到數據科學的整個旅程都記錄到這裡了。從那以後,當我跟同學們談到我的這個舉動時,很多人都表達了同樣的興趣,並提出了同樣的問題……

「你是怎麼從工程轉到數據科學的?」

這也是我要問自己的問題——我該怎麼走?一年多以前,這個想法一直困擾著我,同時也推動著我去建立起數據科學家的技能樹。

進行這項研究的困難當然不是因為缺乏信息。相反,正是因為學習數據科學的資源太多了,使得你很難從一大堆平庸的資源裡面挑出最好的那些。

選擇太多,時間太少... ...

但是首先,我們得先了解一下... ...

什麼是數據科學?

呃,這是一個很難回答的問題。事實上,不同的公司對數據科學的定義各不相同,導致這個術語變得模稜兩可,難以捉摸。有人說數據科學是編程,有人說是數學,還有人說數據科學就是要理解數據。事實證明,這些說法都對。在我看來,我最認同的定義是——

數據科學是利用從數學、計算機科學、領域知識汲取的技術和理論的交叉學科領域。[1]

數據科學是多學科的交叉。

在我看來,圖解的數據科學就是這樣的。我畫的時候不同知識之間的邊界是模糊的,這是我自己的感受,也就是把不同領域的知識融合在一起,就形成了所謂的「數據科學」。

好吧,那我得怎麼去學習數據科學呢?

在本系列博客文章裡,我會重點介紹我的學習之旅都學了哪些課程,並介紹各自的優缺點。通過這些,我希望能幫助那些跟我情況相同的的人規劃好自己在數據科學領域的自學之旅。本系列共分4部分:

在本文中,我會重點介紹作為數據科學家需要掌握哪些數據處理知識。要想學會處理數據,一般需要學習

用SQL(標準查詢語言)從資料庫中提取數據,以及

清洗、處理與分析數據(一般用Python及/或R語言)

有效地對數據進行可視化。

1.用SQL進行數據析取

SQL是跟數據所在的資料庫進行通信的語言。如果說數據是埋在地下的寶藏的話,那SQL就是挖掘原始形式的寶藏的工具。說得更具體一點,SQL可以讓我們從資料庫中的一個表或多個表的組合裡面提取出信息。

掌握SQL並不難。

SQL有很多不同的「口味」,比方說SQL Server、PostgreSQL、Oracle、MySQL及SQLite等。它們之間稍微有些不同,但語法基本上都類似,所以用不著擔心自己用的哪種「口味」的SQL。

想學習語言,首先得學習單詞,然後再把單詞組合成句子和段落。學SQL基本上也是這樣。

為了學習一些最基本的概念(SQL的單詞或句子),我用了Datacamp (SQL入門)和Dataquest(SQL基礎)。(稍後我會介紹Datacamp和Dataquest各自的優缺點。)這些網站一般是通過講解練習和示例來傳授基本的SQL技能。涉及的一些基本概念包括:

用於數據過濾和選擇的SELECT和WHERE

用於數據匯總的COUNT,SUM,MAX,GROUP BY,HAVING

用於生成有用的不同列表和集合的DISTINCT,COUNT DISTINCT

決定什麼時候/在哪裡使用那些數據的OUTER(如LEFT)和INNER JOIN

字符串與時間轉換

UNION和UNION ALL。

(你現在可能還是一頭霧水,沒關係!這只是預計你要學習的內容列表。)

不過,能夠完成這些練習還不足以讓我成為分析師。我能理解單詞和句子,但是還沒法寫出完整的段落。尤其是,像子查詢尋、窗口函數這樣的一些重要、高級概念還沒涉及或者覆蓋完全,雖然在好幾次技術面試裡面都被考過了,而且對於我目前擔任的分析師角色至關重要。這些技能包括

為了學習這些技能,我主要是用SQLZoo.net,因為這個是免費的,而且每個概念都提供了非常具有挑戰性的練習。SQLZoo裡面我最喜歡的功能是它綜合問題,用一道題來測試對不同概念的理解。比方說,提供以下的實體關係圖,要求學員基於該關係圖創建複雜的查詢。

實體關係圖例子。

這跟我們作為分析師在工作中遇到的情況非常接近——我們利用學到的不同技巧來從同一個資料庫裡面提取信息。下面是SQLZoo的一個問題:「幫助臺」的實體關係圖。要求你根據此圖把經理和2017–08–12這一天當中每小時的已接電話數量展示出來。(可在此處自行嘗試!)

我還用了其他一些資源,包括Zachary Thomas的SQL Questions以及Leetcode 。

2.用R和Python進行數據處理

要想學習數據科學所需的編程和工具,就免不了要碰R及/或Python。這兩個都是非常流行的程式語言,可用來進行數據處理、可視化和調整。究竟應該學R還是Python是個老掉牙的問題了,得另起文章才能討論清楚。我的意見?

其實選R還是python都沒關係——精通了R或python之後,另一個學起來也很容易。

我的python和R的編程之旅在是從CodeAcademy、Datacamp、Dataquest、SoloLearn以及Udemy這些跟我一起學編程的網站開始的。這些網站提供了按語言或程序包組織的自定進度的課程。它們都可以將概念分解成更容易理解的部分,還為用戶提供了入門代碼,讓用戶填空完成。這些網站一般會提供引導,幫助你完成簡單的演示,然後你會有機會馬上通過練習來實踐學到的概念。有些網站隨後還會提供基於項目的練習。

今天,我會重點介紹我最愛的兩個:Datacamp和Dataquest。

DataCamp

DataCamp提供了由本領域專業人士講授的視頻講座以及填空練習。視頻講座大多簡潔高效。

我最喜歡DataCamp的地方是最新課程,按照職業路徑組織SQL、R以及python的學習。這種方式避免了制定課程計劃的痛苦——現在你只需要按照自己感興趣的道路走就行了。其中的一些職業路徑包括:

Python / R 數據科學

Python / R / SQL數據分析師

R語言統計學家

Python / R 機器學習科學家

Python / R程式設計師

我個人是從R數據科學開始接受R語言培訓的,這門課程對R的tidyverse進行了相當詳細的介紹,tidyverse是一個非常有用的數據處理包,可用來對數據進行組織、操作和可視化,其中最值得注意的包括ggplot2(用於數據可視化)、dplyr (用於數據操作)以及stringr (用於字符串操作)。

我最喜歡的R語言軟體包。

不過我對DataCamp確實有不滿意的地方,那就是學完之後信息留存情況很糟糕。用填空的方式很容易可以靠猜來完成,導致未必真正理解概念。我在這個平臺上學習的時候,會努力在儘可能短的時間內完成儘可能多的課程。我大概看一下代碼,就開始在不了解全局的情況下填空。如果我可以重新開始DataCamp上的學習的話,我會花時間從整體上更好地消化和理解代碼,而不僅僅是要求我填寫的那部分。

DataQuest

Dataquest跟DataCamp非常相似。側重用代碼練習來闡明編程概念。跟Datacamp一樣,它提供了R、Python以及SQL方面的各種課程,儘管範圍比DataCamp的窄。比方說,跟Datacamp不一樣,Dataquest並不提供視頻講座。

Dataquest提供的一些課程包括:

R / Python數據分析師

Python數據科學

數據工程

一般而言,DataQuest的內容要比DataCamp的難得多。「填空」式的練習也更少。雖然在這裡學花費了更長的時間,但我的知識留存情況卻更好。

DataQuest的另一個重要功能是導師每個月都可以跟你通話,審核你的簡歷並提供技術指導。雖然我個人沒有聯繫過導師,但事後回想起來,這肯定可以幫助我更快取得進步。

3.數據可視化

數據可視化是把你從數據獲得的洞察呈現出來的關鍵。在學習了用python和R創建圖表的技能之後,我通過Cole Knaflic所寫的《用數據講故事》(Storytelling with Data)這本書中學習了數據可視化的原理。

這本書是跟平臺無關的。換句話說,裡面不涉及任何特定的軟體,而是通過啟發性的例子來講授數據可視化的一般原理。通過這本書,預計你可以學到以下一些關鍵指標:

了解上下文

選擇有效的可視化效果

消除雜亂

在需要的地方吸引注意力

像設計師一樣思考

要講故事

我以為自己了解數據可視化,直到我看了這本書才知道自己不知道。

消化吸收完這本書之後,我創建一個視覺上(多少有點)令人愉悅的圖表,來說明警察對黑人殘酷對待的問題。通過這本書我學到的其中一個重要經驗是要在需要的地方吸引別人的注意力。在這張圖表裡面我是通過這樣的處理來實現的:用明亮的黃色線條來突出顯示非裔美國人(讓人聯想起BLM的色調),同時確保圖表的其餘部分仍保留在背景之中,並輔以白色和灰色等暗一點的陰影。

作者的一個數據可視化技術的應用。

下一步

在本文中,我介紹了自己從零開始學習編程的步驟。通過這些課程,現在你已經具備了處理數據的必要技能!但是,前面還有很長的路要走。在接下來的文章裡,我會介紹以下內容:

第2部分——數學、概率論與統計

第3部分——計算機科學基礎

第4部分:機器學習

2-4部分將在未來推出,敬請期待!

譯者:boxi。


相關焦點

  • 【美國】Data Science數據科學專業TOP10
    今天說說美國這幾年大熱專業:Data Science數據科學。Data Science是一項交叉學科,開設在研究生院中,主要由三大塊知識內容構成,它們分別是:1. 統計學與機器學習2. 計算機科學與軟體開發3.
  • 數據科學(Data Science)詳解
    總的來說,數據科學是個跨學科專業,各個專業的人都可以申請。一、不過它有以下特點:1)面向職業培訓、側重工業界需求,沒有博士學位為了符合工業界需求,專門的數據科學項目課程都很實際,側重培養學生分析數據、解決問題的實際動手能力,課程一般不涉及理論知識。
  • Data Science and Big Data Analysis Online Program
    World scientific and technological revolution put forward higher requirements for talents with date science knowledge.
  • 數據科學入門前需要知道的10件事
    他在22歲時開始自學數據科學,目前已經自學成才,編譯了這篇文章,希望能把以下需要注意的10件事告訴剛入門的你。我從2004年開始數據科學之旅。那個時候&34;概念才剛被提出,當時廣泛使用的術語是『數據挖掘』。一直到2012年『數據科學』這個概念才引起人們注意,且一篇由Thomas Davenport 和 D.J.
  • 數據科學入門前需要知道的10件事
    他在22歲時開始自學數據科學,目前已經自學成才,文摘菌編譯了這篇文章,希望能把以下需要注意的10件事告訴剛入門的你。我從2004年開始數據科學之旅。那個時候『數據科學』概念才剛被提出,當時廣泛使用的術語是『數據挖掘』。一直到2012年『數據科學』這個概念才引起人們注意,且一篇由Thomas Davenport 和 D.J.
  • IBM Data Science Experience - 數據科學家實驗室
    從中可以了解到,數據科學家可以使用常見的分析工具,例如在Jupyter Notebooks工作檯中使用R, Python或Scala來進行數據分析工作。Data Scientist Workbench可以提供集成運行環境,方便的對數據進行加工,然後加載合適的算法進行數據分析工作。它使用的數據存放空間有限,僅5GB,當時創建虛擬機也需要進半小時。
  • Data-verse|數據之詩​
    日本視覺藝術家池田涼治(Ryoji Ikeda)與制表公司愛彼(Audemars Piguet)合作,展示了「 Data-verse」,該裝置捕獲了可以維持我們生存的大量知識,將處理後的信息轉換為自然界中隱藏的圖像和聲音,從視覺上讓參觀者沉浸在我們生活的巨大數據中。
  • 數據科學家成長指南:從入門到被逼瘋
    接下來,由《Getting Started with SQL》(O』Reilly)和《Learning RxJava》(Packt) 二書的作者、美國西南航空的企業顧問Thomas Nield,獻上這份《2019年數據科學家成長指南》。廢話不多說,馬上進入戰鬥。不要把工作後寶貴的時間,浪費在考證上。
  • 大數據時代!香港數據科學(Data Science)專業院校推薦
    數據科學是一門交叉學科,涉及到很多的領域包括統計學、數學、計算機、人工智慧、機器學習、資料庫、模式識別、可視化技術等多學科的知識
  • 【專業】數據科學(Data Science)知多少?
    數據科學是一門利用數據學習知識的學科,包括用數據的方法來研究科學和用科學的方法來研究數據。前者包括生物信息學、天體信息學、數字地球等領域;後者包括統計學、機器學習、數據挖掘、資料庫等領域。數據科學結合了諸多領域中的理論和技術,包括應用數學、統計、模式識別、機器學習、數據可視化、數據倉庫以及高性能計算。
  • 2020 版 Python 數據清理終極指南!
    為了簡便起見,我們在Python中新創建了一個完整的、分步的指南,你將從中學習到如何進行數據查找和清理的一些方法:缺失的數據;不規則的數據(異常值);不必要的數據——重複數據等;如何發現缺失的數據?我們將為你介紹三種技術,可以進一步了解在數據集中的缺失數據。1、缺失數據的熱圖當特徵數量較少的時候,我們可以通過熱圖來進行缺失數據的可視化工作。
  • 資源| 自學數據科學&機器學習?19個數學和統計學公開課推薦
    ——數學家 John Edensor Littlewood數學和統計學是數據科學和機器學習的基礎。就我所知,大多數成功的數據科學家都來自這些領域——計算機科學、應用數學和統計學、經濟學。如果你想掌握數據科學,你就必須要對基本代數和統計學有很好的了解。但是,對於沒有數學背景的人來說,起步之路可能會舉步維艱。
  • 準備好進入數據科學領域了嗎?先問問自己這14個問題
    最近一項研究表明,2020年大多數高科技工作需要數據科學技能。數據科學領域確實有很多令人興奮的機會。但在進入數據科學領域前,有必要看看以下問題,以評估數據科學是否真的適合你。1.什麼是數據科學?數據科學是一個廣闊的領域,包括幾個細分領域,如數據準備和探索、數據表示和轉換、數據可視化、預測分析、機器學習、深度學習、人工智慧等。
  • 這就是每年幾萬人申請的 Data Science
    02 史丹福大學 M.S. in Statistics:data science斯坦福的 DS 項目的核心課程圍繞在幫助學生培養強大的數學、統計、計算和編程技能上,學制一般是 2 學年,需要 4-5 個 quarter
  • 沒有背景也可以申請Data Science專業了!
    因此,數據分析(DS)專業也一躍成為競爭最激烈的專業之一DS專業可以說是由Computer Science發展而來,主要是通過模型、算法和可視化對數據進行研究。可以看出,很多課程與計算機科學密切相關,不涉及太多商科課程,學習的編程類課程也更多。DS是將龐大數據進行一系列檢索、整理,提取有效信息的專業,著重培養數據處理相關的技術能力。
  • 如果能重來,我選擇這樣學習數據科學……
    因此,本文旨在為那些正在數據科學道路上迷茫徘徊的人提供一些指導和見解。一名有抱負的數據科學家通常會希望能完全理解各種機器學習算法、數據科學思想等的概念和細節。因此,筆者建議在學習機器學習算法或數據科學應用程式之前先從構建區塊開始。如果對微積分和積分、線性代數和統計都沒有基本的了解,那麼你將很難理解各種算法背後的機制。
  • 香港新加坡留學統計和數據科學專業介紹,高薪專業!
    methods (6 credits)Categorical data analysis (6 credits)Programming for data science (6 credits)Time series forecasting (6 credits)
  • 精選好文|高能同步輻射光源科學數據處理平臺規劃與設計
    [4]  科學數據管理辦法.國辦發〔2018〕17號.收稿日期:2020年1月10日齊法制,中國科學院高能物理研究所計算中心,博士,研究員,高能同步輻射光源計算與網絡通訊系統負責人。研究方向為高性能網絡、科學數據處理等。本文中負責整體架構規劃與設計。
  • 14個超有趣的數據科學項目,數據集都準備好了!
    對於對數據,數據分析或數據科學感興趣的人,我們提供了一份可以利用業餘時間完成的數據科學項目清單,一共14個!novel-corona-virus-2019-dataset 教程: https://towardsdatascience.com/visualizing-the-coronavirus-pandemic-with-choropleth-maps-7f30fccaecf5 澳洲大火數據可視化
  • 2020年應該關注的十大數據科學領導者
    在此期間,我一直在獨自學習,但並未真正理解數據科學在現實世界中的&34;以及如何成為一名出色的數據科學家。我覺得我需要一些指導。 我需要嚮導師學習。這是我開始向LinkedIn上的數據科學領導者學習的時間,這極大地幫助了我的學習旅程,甚至使我的數據科學事業得到了前所未有的豐富學習機會。