關於做一名數據科學家,我有一些想法。成爲一名數據科學家並不容易,需要付出很多努力,但如果你對數據科學充滿興趣,那一切都是值得的。
時常有人問我:如何成爲一名數據科學家?必修的課程是什麼?需要多長時間?你是怎麼成爲數據科學家的?我已多次回答過這些問題。所以在我看來,寫一篇彙總的文章也許能幫助那些想要成爲數據科學家的人。
關於我自己
我(俄羅斯,莫斯科)在密歇根州立大學經濟學院獲得碩士學位,並在 ERP 系統規劃領域做了 4 年的分析師和顧問。我的工作涉及與客戶交談,討論他們的需求並將其落地,編寫文檔,向程序員說明任務,測試結果,組織項目和許多其它事情。
這是一項壓力很大的工作,需要處理很多問題。更重要的是,我並不喜歡它。儘管我喜歡處理數據,但我做的大多數事情還是令人索然無味。所以,在 2016 年的春夏之交,我開始另謀出路。我通過了精益六西格瑪(Lean Six Sigma)的綠帶測試,但還未找到新的就業機會。有一天我發現了大數據(BigData)。在 google 上搜索和閱讀了許多文章後,我意識到這可能是我的夢想職業。
我辭去工作,並在八個月後在一家銀行找到了第一份數據科學家的工作。從那之後,我先後就職了幾家公司,但我對數據科學的熱情日益增加。我完成了一些關於機器學習和深度學習的課程,實踐了一些項目(如聊天機器人或數字識別 APP),先後參加了許多機器學習的比賽和活動,在 Kaggle 上獲得了三枚銀牌。總之,我有一些學習數據科學和作爲數據科學家工作的經驗。當然,我還有很多技能需要學習。
免責聲明
本文所述僅爲我自己的觀點。可能有些人會對其中的內容持反對態度,但我無意冒犯任何人。我認爲想成爲一名數據科學家必須投入大量的時間和精力,否則將一事無成。Course 或 MOOC 聲稱可以讓你在幾周或幾個月內成爲機器學習/深度學習/數據科學專家的廣告語並不是真的。你可以在數週/數月內獲得一些知識和技能。但如果沒有廣泛的實踐(大多數課程內不包含這一部分),你無法真正掌握它。
你確實需要內在的動力,但更重要的是,你需要嚴格地規範自己,這樣你可以在動力消失後繼續努力。
再說一遍——你需要自己動手動腦。如果你在提出最基礎的問題之前沒有用 Google/ StackOverflow 或思考幾分鐘,那你將永遠無法趕上專業人士。
在我參加的大多數課程中,只有大約 10-20%的人完成了這些課程。半途而廢的人基本都缺乏耐心和決心。
什麼樣的人能成爲數據科學家?
上圖顯示了數據科學家所需的一些核心技能,比如:數學和統計學,編程和開發,領域相關知識和軟技能。
這麼多技能!怎麼可能完全掌握呢?嗯,需要花費很多時間。但告訴你一個好消息:沒必要掌握全部。
2018 年 10 月 21 日,Yandex 上有一個有趣的演講,其中提到數據科學專家類型有很多,他們只是擁有上述技能中的某幾種而已。
數據科學家應該處於圖片中間的位置,但實際上他們可以處於三角形的任何位置,不同位置對應了不同的專家能力。
在本文中,我將討論的一類數據科學家是那些可以與客戶交談,進行分析,構建模型並實施項目的人。
轉行?這意味着你已有所瞭解!
有人說轉行相當困難。雖然這是事實,但轉行也通常意味着你對現在工作已經有所瞭解。也許你有編程和開發經驗,也許你在數學/統計學領域工作過,或者你每天鍛鍊你的軟技能。至少你擁有一些自己領域的專業知識。你可以揚長避短。
來自 Reddit 的數據科學路線圖
實際上這裏有兩個路線圖:)
第一個來自 Reddit:
首先,閱讀 Hastie、Tibshirani 和 Jerome Friedman 所著的《The Elements of Statistical Learning》第 1-4 章和 7-8 章。就算暫時不理解,也要堅持閱讀。
如果需要,你可以閱讀該書的其它部分。假設你對全書都已有所瞭解。
觀看 Andrew Ng 的 Coursera 課程。用 python 和 R 語言完成所有練習。確保你能寫出正確答案。
然後閱讀一本深度學習書。在 Linux 系統中運行 tensorflow 和 pytorch 框架並實踐示例項目,直到完成。嘗試使用卷積神經網絡、循環神經網絡和前饋神經網絡。
完成所有這些後,繼續在 arXiv 上閱讀最新的有用論文。文獻不斷在更新,所以要跟上大部隊。
完成這些的你現在會被大多數公司錄取。如果你需要完善簡歷,可以參加一些 Kaggle 比賽。如果你有調試問題,請使用 StackOverflow。如果在數學方面有問題,請多讀文獻。如果生活上問題,自己看着辦吧。(以上引用)
《The Elements of Statistical Learning》地址:https://web.stanford.edu/~hastie/ElemStatLearn//printings/ESLII_print10.pdf
其中一條評論:
這些還不夠。還有一個新問題:沒有訓練數據,想想怎麼收集。學會寫 scraper,然後做一些標註和特徵提取。在 EC2 上完成所有安裝並實現自動化。嘗試編寫代碼,以便有新數據時,在生產中不斷重新訓練和部署模型。
雖然這些聽起來很簡短,但很嚴苛且非常困難,如果做到了,它可以讓你有個飯碗。
當然,還有許多其它的數據科學方法,我提供的只是我自己的方法。它並不完美,但卻是基於我的個人經驗。
我的路線圖:
有一項技能可以讓你走得很遠。如果你還沒擁有這項技能,希望你儘快掌握。這項技能是——獨立構思,檢索信息,發現信息,理解信息。有些人無法獨立構思,有些人無法找到最基本問題的解決方案,有些人甚至不知道如何正確使用谷歌搜索。這是一項必備的基礎技能,你必須掌握它!
選擇一門編程語言進行學習。Python 或 R 語言就不錯。我強烈建議選擇 Python。理由我就不多說了,關於 R / Python 的爭論已經多得數不勝數,不過我個人認爲 Python 更通用,更實用。花上 2-4 周學習語言,這樣你就能做基本的事情了。大致瞭解要使用的庫,例如 pandas / matplotlib 或 tydiverse / ggplot2。
過一遍 Andrew NG 的 ML 課程。這門課比較老,但它可以幫你夯實基礎。用 Python/R 完成其中的任務可能很有用,但沒有必要。
再選擇一門(或幾門)進階的 ML 課程進行學習。對於 R 用戶,我推薦 Analytics Edge,對於 Python 用戶,我推薦 mlcourse.ai。如果你懂俄語,那麼 Coursera 上的這門課(https://www.coursera.org/specializations/machine-learning-data-analysis)也很棒。在我看來,mlcourse.ai 是三者中最好的。爲什麼?它提供了良好的理論和一些有挑戰的任務,這已經足夠了。同時它還教人們參加 Kaggle 比賽並製作獨立項目。這對實踐很有幫助。
學習 SQL。大多數公司的數據都保存在關係數據庫中,因此你要能夠獲取它。可以使用 select 語句、group by 語句、join 語句、CTE 表達式等。
嘗試使用原始數據,獲得處理雜亂數據集的經驗。
上一條是選做,但這一條是必須完成的:完成至少 1 或 2 個完整項目。例如,對某些數據集進行詳細的分析和建模,或創建一個應用程序。最重要的是學習如何構思一個想法、規劃實施、獲取數據、實施並完成項目。
參加 Kaggle 比賽。
加入一個好的社區。我加入了 ods.ai——由一萬五以上活躍的俄羅斯數據科學家組成的社區(不過這個社區對任何國家的數據科學家都開放),這對我幫助很大。
學習深度學習是另一個全新的話題。
這僅僅是個開始。遵循這個路線圖(或做相似的事)將幫助你開啓數據科學家之路。剩下的路要靠你自己走!
原文鏈接:https://towardsdatascience.com/a-long-term-data-science-roadmap-which-wont-help-you-become-an-expert-in-only-several-months-4436733e63ff