【智能】如何成爲數據科學家:權威指南

筆者邀請您,先思考:

1 如何成爲數據科學家?

數據科學教育家Jose Portilla提供了關於成爲數據科學家的權威性指南,其中包括從獲取特定技能到尋找第一份工作,再到掌握面試機會的各種資源。

你好!我是Jose Portilla,Udemy的講師,有超過25萬名學生註冊了各種各樣的課程,包括Python的數據科學和機器學習、R編程的數據科學、Python的大數據等等。

幾乎每天都有學生問我這個問題:

我應該怎樣做才能成爲一名數據科學家?

在這篇文章中,我將盡我最大的努力來幫助回答這個問題,並指出可以幫助你找到答案的資源,也希望這篇文章可以可以快速連接到我的學生。

我最近還在寫一本關於數據科學家採訪的書!看看這裏。

現在繼續這篇文章!我將這些步驟分解成一些關鍵的主題,並討論了每個主題的有用細節。

旅程

“獲得成功的祕訣就是開始。” - 馬克吐溫

如果您有興趣成爲數據科學家,最好的建議是立即開始爲您的旅程做準備!花時間瞭解核心概念不僅對面試非常有用,而且還可以幫助您確定您是否真正對這一領域感興趣。

在開始成爲數據科學家的道路之前,重要的是你要對自己誠實地說明爲什麼要這樣做。您可能應該問自己一些問題:

  • 你喜歡統計和編程嗎? (至少你到目前爲止學到了什麼?)
  • 您是否喜歡在一個需要不斷學習新技術的領域工作?
  • 您是否有興趣成爲數據科學家,即使它只是支付平均工資?
  • 你還可以使用其他職稱(例如數據分析師,業務分析師等)嗎?

問自己這些問題並對自己誠實。如果您回答是,那麼您即將成爲數據科學家!

成爲數據科學家的道路很可能會花費你一些時間,具體取決於您以前的經驗和網絡。利用這兩者可以幫助您更快地完成數據科學家的角色,但要隨時準備好學習!現在讓我們開始討論一些更切實的主題!

數學

“不要擔心你在數學方面的困難。 我可以向你保證,我的生活還會更大。“ - 愛因斯坦

如果你想進入數據科學,你應該熟悉的關於數學的主要話題是概率,統計和線性代數。隨着您對統計學習(機器學習)等其他主題的瞭解越來越多,這些核心數學基礎將成爲您繼續學習的基礎。讓我們簡要介紹一下,併爲您提供一些可供學習的資源!

概率 - 衡量事件發生的可能性。許多數據科學都是基於嘗試測量事件的可能性,從點擊廣告的機率到裝配線上零件失敗的可能性。

對於這個經典主題,我建議讀一本書,例如Sheldon Ross的《A First Course in Probability》E.T. Jaynes的《Probability Theory》。由於這些是教科書,如果你直接從亞馬遜購買新產品,它們可能相當昂貴,所以我建議在網上或pdf版本查看舊版本以節省一些錢!

如果您更喜歡通過視頻格式學習,您還可以查看可汗學院關於概率的視頻系列。您還可以查看麻省理工學院關於概率和統計學的OpenCourseWare講座。只需簡單搜索,即可在Youtube上輕鬆找到。

統計學 - 一旦掌握了概率理論,就可以繼續學習統計學,這是數學的一般分支,用於分析和解釋數據。充分了解統計中使用的技術需要您理解概率和概率符號!

再說一次,我更像是一個教科書的人,幸運的是有兩本很棒的在線教科書完全免費供你參考:

  • http://www.statsoft.com/Textbook
  • http://onlinestatbook.com/2/index.html

如果你更喜歡老式的教科書,我喜歡David Freedman的《Statistics》。我建議使用本書作爲您的主要基礎,然後查看此處列出的其他資源,以深入瞭解其他主題(如ANOVA)。

對於實踐問題,我非常喜歡使用Shaum的提綱系列(你可以在這個系列中找到概率和統計學的書籍)。

如果您更喜歡視頻,請查看Brandon Holtz關於Youtube統計數據的精彩系列!

線性代數 - 是數學的分支,涵蓋了向量空間和這些空間之間的線性映射的研究。它在機器學習中大量使用,如果你真的想要理解這些算法是如何工作的,你需要建立對線性代數的基本理解。

我推薦查看Strang的《Linear Algebra and Its Applications》,這是一本很棒的教科書,也可以在MIT線性代數課程中使用,你可以通過OpenCourseWare訪問!有了這兩個資源,您應該能夠在線性代數中建立堅實的基礎。

根據您的位置和工作流程,您可能不需要深入研究線性代數的一些更復雜的細節,一旦您更熟悉編程,您會發現某些庫傾向於處理大量的線性代數任務。但瞭解這些算法的工作原理仍然很重要!

編程

“通過代碼行測量編程進度就像按重量衡量飛機制造進度一樣。” - 比爾蓋茨

數據科學界主要採用R和Python作爲編程的主要語言。 其他語言如Julia和Matlab也被使用,但R和Python是迄今爲止在這個領域最受歡迎的語言。

在本節中,我將描述編程和數據科學的一些主要基本主題,然後指出用於R和Python的主要庫!

開發環境

這個主題非常依賴於您的個人偏好,我將簡要介紹一些使用R和Python進行數據科學開發環境(IDE)的更流行的選項。

Python - 由於Python是一種通用編程語言,因此可以使用許多選項!您可以使用純文本編輯器,如Sublime Text或Atom,然後根據自己的喜好進行自定義,我個人將此方法用於大型項目。另一個流行的python IDE是來自JetBrains的PyCharm,它提供了一個免費的社區版本,爲大多數用戶提供了大量功能。我最喜歡的Python環境必須是Jupyter筆記本,以前稱爲iPython筆記本,這個筆記本環境使用單元格來分解代碼並提供即時輸出,因此您可以輕鬆地與代碼和可視化進行交互!儘管其他語言一直在改進,但Python是迄今爲止所有這些中最好的支持! Jupyter筆記本在數據科學和機器學習領域非常受歡迎。我將它用於我所有的Python課程,大多數學生都非常喜歡它。雖然可能不是需要部署的大型項目的最佳解決方案,但它對於學習環境來說非常棒。

至於在您的計算機上安裝Python,您可以隨時使用官方源代碼 - python.org,但我通常建議使用Anacondadistribution,它將包含我將在本節中討論的許多軟件包!

R - RStudio可能是R最受歡迎的開發環境。它背後有一個很棒的社區,它的基本完整版本是完全免費的。它可以很好地顯示可視化,爲您提供了許多自定義體驗的選項。這幾乎是我用R去做的事情! Jupyter筆記本也支持R內核,雖然我已經使用它們,但我發現與Jupyter Notebook的Python功能相比缺乏經驗。

數據分析

Python - 對於數據分析,兩個庫是Python的主要工具:NumPy和Pandas。 NumPy是一個數字科學計算軟件包,它是Python Data Science生態系統中幾乎所有其他Python軟件包的基礎。 Pandas是一個直接由NumPy構建的數據分析庫,旨在模仿許多R的內置功能,例如DataFrames!您可以將其視爲Excel的超級版本,它允許您快速清理和分析數據。如果您成爲使用Python的數據科學家,熊貓將很快成爲您的主要工具之一!這是我最喜歡的Python庫!我還建議查看SciPy以獲取PyData系統中庫的詳細信息和鏈接。

R - 在大多數情況下,R已經內置了許多數據分析功能,例如Dataframes!但是R社區也創建了許多有用的軟件包來幫助以更有效的方式處理數據!這些軟件包被稱爲“tidyverse”,它是一組有用的數據科學軟件包,所有這些軟件包都設計有類似的數據處理理念,這意味着它們可以很好地協同工作。這些軟件包包括用於數據操作的dplyr,用於清理數據的tidyr,用於讀取數據的readr,以及用於改善R的一些內置功能的包,如purr和tibble。學習tidyverse包是使用R的數據科學家必須的! ggplot2也是tidyverse的一部分,但是用於數據可視化,所以讓我們接下來跳到那個主題吧!

數據可視化

Python - Python可視化的“祖父”是matplotlib。創建Matplotlib是爲了提供Python的可視化API,讓人聯想到MatLab中使用的樣式。如果您之前使用過MatLab進行可視化,那麼過渡將會非常自然。但是,由於其龐大的功能庫,matplotlib創建了許多其他可視化庫,以簡化操作或提供更具體的功能!

Seaborn是一個很棒的統計繪圖庫,可以很好地處理pandas並使用matplotlib編寫。它只需幾行代碼即可創建漂亮的圖形。 Pandas還具有內置的matplotlib繪圖功能!

Plotly和Bokeh可用於使用Python創建交互式圖。我建議兩者兼顧,看看你喜歡哪一個!

R - 到目前爲止,最流行的R繪圖庫是ggplot2。它的設計哲學及其基於圖層的API使其易於使用,並允許您基本上製作您能想到的任何主要圖表!同樣很棒的是可以輕鬆使用Plotly,允許您通過使用ggplotly快速將ggplot2圖轉換爲交互式可視化!

機器學習

Python - SciKit-learn是最流行的Python機器學習庫,內置算法和模型用於分類,迴歸,聚類,降維,模型選擇和預處理。如果您對構建統計推斷模型更感興趣(例如在線性迴歸後分析p值),您應該查看statsmodels,它也是處理時間序列數據的絕佳選擇!對於深度學習,請查看TensorFlow,PyTorch或Keras。由於其簡化的API,我建議Keras適合初學者。對於深度學習主題,您應該始終參考官方文檔,因爲這是一個變化非常快的領域!

R - 初學者數據科學家R的一個問題是它在機器學習方面有很多選擇。每個主要算法都可以有自己獨立的包,每個包都有不同的關注點。當您開始時,我建議首先使用caret包,它爲分類和迴歸任務提供了一個很好的接口。一旦你轉向無監督學習技術,如聚類,最好的辦法是快速谷歌搜索,看看哪些軟件包最適合你打算使用的技術,你甚至會發現R已經有了一些內置的基本算法,例如kmeans聚類。

在哪裏學習這些庫和技能?

我全面教授這些主題,您可以使用以下鏈接查看課程95%的折扣。

我的Python數據科學和機器學習訓練營:

基於Python的數據科學和機器學習訓練營 瞭解如何使用NumPy,Pandas,Seaborn,Matplotlib,Plotly,Scikit-Learn,機器學習,Tensorflow等等!

我的R數據科學,可視化和機器學習課程:

基於R的數據科學與機器學習訓練營

學習如何將R編程語言用於數據科學和機器學習以及數據可視化!

現在我們已經瞭解了編程主題的一般背景,讓我們討論實際找到數據科學工作的途徑!

社區

“旅途中的好夥伴讓路看起來更短。” - Izaak Walton

尋找數據科學家職位可能需要一段時間,最好開始構建您的網絡! 開始構建網絡的最佳方法之一是參加涉及數據科學的聚會!但是你不需要嚴格限制於數據科學,你應該參加與數據科學相關的任何主題的聚會,比如Python聚會,可視化聚會等。

會議是連接數據科學家的另一種很好的方式,而許多會議可能會非常昂貴,會議通常會在展會期間舉辦招聘會。如果您只打算參加職業展覽會,您通常可以獲得折扣甚至是免費的會議通行證。會議還經常舉辦研討會,讓您學習新技能!

您還應該開始查看在線社區和資源,像O'Reilly數據訂閱,Kaggle和KDnuggets這樣的資源可以幫助您瞭解數據科學社區正在發生的事情。播客是另一種開始學習數據科學社區的好方法。我建議查看Talking Machines,Partially Derivatives和O'Reilly Data Show。

求職和麪試

“如果我們有數據,讓我們看看數據。 如果我們所有人都有意見,那就讓我們去吧。“ - James L. Barksdale

所以你已經學會了你的技能,網絡化,現在已經準備好開始作爲數據科學家工作了!

求職

第一步是開始尋找新工作,其中很多都會根據您的個人情況和目標而有所不同,所以我會盡量保持一般的建議。

同時開始搜索和練習技能的最佳方法之一是參與Kaggle挑戰併發布有關您的試驗的博客。一些Kaggle挑戰甚至可以直接把面試作爲獎品的一部分!即使沒有獎品,它在真實數據集上的寶貴經驗!請注意,Kaggle還擁有自己的數據科學家工作板。

通過UpWork等網站進行自由職業,爲開源項目做貢獻,以及回答有關StackOverflow的問題,這是讓招聘人員瞭解您的存在的另一個好方法。

您還需要確保您的簡歷,LinkedIn和Github都已更新,以反映您的新技能和項目。

對於一般的求職利用類似Indeed或DataJobs網站,嘗試網站如Triplebyte直接給你一系列的技術訪談,可以快速通過很多公司的初次面試階段。您還可以使用AngelList Job board和HackerNews Job Board查看工作板。

面試

無論好壞,許多公司仍然依賴涉及數據結構和算法的經典面試問題。要準備這些問題,您應該查看主題,如數組,圖表,遞歸,鏈接列表,堆棧等…您應該參考書籍或課程,並經歷許多練習問題!我有關於這些主題的課程,您可以通過查看我的熱門github存儲庫免費查看一些材料,其中包含許多帶有練習題和解決方案的jupyter筆記本!

基於Python的算法,數據結構和麪試。

您還可以查看leetcode上的練習題列表

問題 - LeetCode

提高您的編碼技能並快速找到工作。這是擴展知識並做好準備的最佳場所……(leetcode.com)

對於更具體的數據科學問題,您需要熟悉各種主題,例如概率問題,R或Python編程問題,SQL查詢以及可能的大數據管理(Spark等主題)。您還應該熟悉建模和選擇參數背後的原因,例如L1和L2正則化之間的差異。

您在閱讀中有什麼想法,請留言。 原文鏈接: https://www.kdnuggets.com/2017/08/become-data-scientist-definitive-guide.html

版權聲明:作者保留權利,嚴禁修改,轉載請註明原文鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章