100天學習計劃 | 一份詳實的數(shù)據(jù)科學指南
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請至雷鋒網(wǎng)官網(wǎng)申請授權(quán)。
你是否對學習數(shù)據(jù)科學感興趣,但不知道從哪里開始?如果是,那你來對地方了。
我遇到過許多對學習數(shù)據(jù)科學充滿熱情的人,但僅僅幾周后,他們就放棄了學習。我想知道為什么一個人對一個領(lǐng)域如此熱情卻不去追求它?通過與他們中的一些人交談,我了解到人們放棄學習的主要原因是:
-
為了成為一名數(shù)據(jù)科學家,他們要學習的課題太多了
-
他們遇到的領(lǐng)路人說,要成為數(shù)據(jù)科學家,必須是一個有才華的程序員、數(shù)學專家、應用統(tǒng)計學大師,并且非常熟練地使用panda、NumPy和其他python庫。
這些甚至會嚇到一個有經(jīng)驗的數(shù)據(jù)科學家,難怪他們會讓試圖學習數(shù)據(jù)科學的人放棄。上面的每一個話題就像一片海洋,當有人試圖快速掌握它們時,他們會感到沮喪并放棄學習。真正的事實是,要想成為一名成功的數(shù)據(jù)科學家或成為一名數(shù)據(jù)科學家,你甚至需要掌握更多。
如何學習數(shù)據(jù)科學
要成為一名數(shù)據(jù)科學家,你需要從以下條目中學到足夠多的知識:
-
Python或R編程的基礎(chǔ)知識
-
如果選擇Python,那么像panda和Numpy這樣的庫
-
可視化庫,如ggplot、Seaborn和Plotly。
-
統(tǒng)計數(shù)據(jù)
-
SQL編程
-
數(shù)學,尤指線性代數(shù)和微積分
在下面的視頻中,我提到了學習數(shù)據(jù)科學的分步指南。我已經(jīng)解釋了達到數(shù)據(jù)科學不同專業(yè)水平所需的知識深度。
https://youtu.be/5zec-qxfMvg
如何計劃學習?哪些主題應該首先涉及?
讓我來解釋一下100天學習數(shù)據(jù)科學的計劃。下面是使用Python學習數(shù)據(jù)科學的逐日計劃,該計劃跨度為100天,每天至少需要花費一個小時
第一天:安裝工具
只要確保安裝了所需的工具,并且您對接下來幾周/幾個月將要使用的工具感到舒適即可。如果選擇Python則安裝Anaconda,其中還會安裝IDEs Jupyter筆記本和Spyder。如果你選擇' R ',然后安裝RStudio。試著在IDE中玩一玩,并熟練地使用它。比如,嘗試理解包/庫的安裝、執(zhí)行部分代碼、清理內(nèi)存等等。
第2天到第7天:數(shù)據(jù)科學的基礎(chǔ)編程
下一步是學習基本的編程,下面是一些應該學習的主題:
-
創(chuàng)建變量
-
字符串數(shù)據(jù)類型和通常在字符串數(shù)據(jù)類型上執(zhí)行的操作
-
數(shù)值數(shù)據(jù)類型、布爾值和運算符
-
集合數(shù)據(jù)類型列表、元組、集合和字典——理解它們之間的唯一性和差異非常重要。
-
If-Then-Else條件,F(xiàn)or循環(huán)和While循環(huán)實現(xiàn)
-
函數(shù)和Lambda函數(shù)-它們各自的優(yōu)點和區(qū)別
第8天到第17天: Pandas 庫
了解 Pandas 庫,在 Pandas 中需要了解的一些主題是:
-
創(chuàng)建數(shù)據(jù)幀,從文件讀取數(shù)據(jù),并將數(shù)據(jù)幀寫入文件
-
從數(shù)據(jù)框架中索引和選擇數(shù)據(jù)
-
迭代和排序
-
聚合和分組
-
缺失值和缺失值的處理
-
Pandas 的重命名和替換
-
在數(shù)據(jù)幀中連接、合并和連接
-
總結(jié)分析,交叉表格,和樞軸
-
數(shù)據(jù),分類和稀疏數(shù)據(jù)
花10天時間徹底學習以上主題,因為這些主題在執(zhí)行探索性數(shù)據(jù)分析時非常有用。在介紹這些主題時,請嘗試深入粒度細節(jié),比如理解合并和連接、交叉表和樞軸之間的差異,這樣不僅可以了解它們中的每一個,還可以知道在何時和何處使用它們。
我為什么要學 Pandas?如果您從事任何數(shù)據(jù)科學項目,它們總是從探索性數(shù)據(jù)分析開始,以便更好地理解數(shù)據(jù),而您在 Pandas 中介紹的這些主題將會派上用場。另外,因為Pandas有助于從不同的來源和格式讀取數(shù)據(jù),所以它們速度快、效率高,還提供了對數(shù)據(jù)集執(zhí)行各種操作的簡單功能。
第18天到第22天:Numpy Library
學會 Pandas 之后,下一個需要學習的重要庫是Numpy。學習Numpy的原因是與List相比它們非???。在Numpy中要涉及的主題包括:
-
數(shù)組的創(chuàng)建
-
索引和切片
-
數(shù)據(jù)類型
-
連接與分離
-
搜索和排序
-
過濾所需的數(shù)據(jù)元素
為什么學習Numpy很重要?Numpy能夠以快速和高效的方式對數(shù)據(jù)執(zhí)行科學操作。它支持機器學習算法中常用的高效矩陣運算,panda庫也廣泛使用了Numpy。
第23天到第25天:可視化
現(xiàn)在,我們需要花一些時間來理解和使用一些關(guān)鍵的可視化庫,比如ggplot、Plotly和Seaborn。使用示例數(shù)據(jù)集并嘗試不同的可視化,如柱狀圖、線形/趨勢圖、盒狀圖、散點圖、熱圖、餅狀圖、柱狀圖、氣泡圖和其他有趣的或交互式可視化。
數(shù)據(jù)科學項目的關(guān)鍵是與涉眾交流洞察力,而可視化是實現(xiàn)這一目的的很好的工具。
第26天到第35天:統(tǒng)計、實現(xiàn)和用例
下一個要討論的重要主題是統(tǒng)計學,探索常用的描述性統(tǒng)計技術(shù),如平均值、中位數(shù)、眾數(shù)、范圍分析、標準差和方差。
然后介紹一些更深層次的技術(shù),比如識別數(shù)據(jù)集中的異常值和測量誤差范圍。
作為探索各種統(tǒng)計測試(如下所示)的最后一步,了解這些統(tǒng)計測試在現(xiàn)實生活中的應用:
-
F-test
-
ANOVA
-
卡方測試
-
T-Test
-
Z-Test
第36天到第40天:用于數(shù)據(jù)分析的SQL
現(xiàn)在是學習SQL的時候了,這很重要,因為在大多數(shù)企業(yè)用例中,數(shù)據(jù)將存儲在數(shù)據(jù)庫中,了解SQL將極大地幫助從系統(tǒng)中查詢所需的數(shù)據(jù)進行分析。
您可以先安裝一個開源數(shù)據(jù)庫,比如MySQL,它會附帶一些默認數(shù)據(jù)庫,只需要處理數(shù)據(jù)并學習SQL。如果你能集中學習以下內(nèi)容,那就太好了:
-
從表中選擇數(shù)據(jù)
-
基于鍵連接來自不同表的數(shù)據(jù)
-
對數(shù)據(jù)執(zhí)行分組和聚合功能
-
使用case語句和篩選條件
第41 - 50天:探索性數(shù)據(jù)分析(EDA)
在任何數(shù)據(jù)科學項目中,大約80%的時間用于此活動,因此最好花時間徹底學習此主題。為了學習探索性數(shù)據(jù)分析,這里不涉及一組特定的功能或主題,但是數(shù)據(jù)集和用例將驅(qū)動分析。因此,最好使用一些來自kaggle中主辦的比賽的樣本數(shù)據(jù)集,學習如何執(zhí)行探索性分析。
學習探索性數(shù)據(jù)分析的另一種方法是編寫關(guān)于數(shù)據(jù)集的問題,并嘗試從數(shù)據(jù)集為它們找到答案。比如,如果我考慮最受歡迎的泰坦尼克號數(shù)據(jù)集,然后嘗試尋找問題的答案,比如哪種性別/年齡/甲板的人有更高的死亡概率等等。你進行全面分析的能力會隨著時間的推移而提高,所以要有耐心,慢慢地自信地學習。
到目前為止,您已經(jīng)學習了數(shù)據(jù)科學家所需的所有核心技能,現(xiàn)在可以學習算法了。
數(shù)學怎么了?
是的,了解線性代數(shù)和微積分是重要的,但我寧愿不花時間學習數(shù)學概念,但當他們需要,你可以參考和溫習你的技能,高中水平的數(shù)學將是足夠的。例如,假設你正在學習梯度下降法在學習算法的同時你可以花時間學習它背后的數(shù)學知識。 因為如果你開始學習數(shù)學中的重要概念,那么它可能是非常耗時的,而且通過在需要的時候?qū)W習,你會學到足夠的時間所需要的東西,但是如果你開始學習數(shù)學中的所有概念,那么你將會花費更多的時間,學到的東西將遠遠超過所需要的。
第51天到第70天:監(jiān)督學習和項目實施
在開始的10天里,學習一些關(guān)鍵的算法,理解它們背后的數(shù)學原理,然后在接下來的10天里,專注于通過開發(fā)一個項目來學習。這節(jié)課要講的一些算法有:
-
線性回歸和邏輯回歸
-
決策樹/隨機森林
-
支持向量機(SVM)
在最初的10天里,重點應該是理解你所選擇的算法背后的理論。然后花些時間了解每個算法比其他算法更適合的場景,比如當數(shù)據(jù)集中有很多分類屬性時,決策樹是最好的。
然后選擇一個解決的例子在Kaggle,你將能夠找到大量解決的例子嘗試重新執(zhí)行他們,但仔細理解每一行代碼,并理解他們的原因。到目前為止,您已經(jīng)獲得了良好的理論知識,以及從解決的示例的工作知識。
最后一步,選擇一個項目,并實現(xiàn)一個有監(jiān)督的學習算法,從數(shù)據(jù)收集、探索性分析、特性工程、模型構(gòu)建和模型驗證開始??隙〞泻芏鄦栴}和問題,但當你完成項目時,你會對算法和方法有很好的了解。
第71天到第90天:無監(jiān)督學習和項目實施
現(xiàn)在是時候關(guān)注非監(jiān)督學習了,類似于在監(jiān)督學習中使用的方法,先花幾天時間理解你在非監(jiān)督學習中選擇的算法背后的概念,然后通過實施一個項目來學習。
這里要講的算法是,
-
聚類算法-用于在數(shù)據(jù)集中識別聚類
-
關(guān)聯(lián)分析——用于識別數(shù)據(jù)中的模式
-
主成分分析——用于減少屬性的數(shù)量
-
推薦系統(tǒng)-用于識別相似的用戶/產(chǎn)品并進行推薦
最初的日子里,應把重點放在理解上面的算法和技術(shù)也了解他們每個人的目的,他們可以使用的場景像主成分分析通常用于數(shù)據(jù)集降維,當你工作在一個非常大的列數(shù)和你想要減少,但仍保留信息和推薦系統(tǒng)在電子商務流行基于客戶的購買模式可以推薦他們可能感興趣的其他產(chǎn)品來增加銷量。
當您熟悉了可以使用它們的理論和場景后,就可以選擇一個已解決的示例,并通過逆向工程來學習,即理解每一行代碼并重新執(zhí)行它們。
作為最后一步,現(xiàn)在是選擇用例并基于您目前所學實現(xiàn)的時候了。在完成項目/用例時,你會學到很多東西,你會對這些算法有更好的理解,這將永遠伴隨著你。
第91天到第100天:自然語言處理基礎(chǔ)
利用這段時間關(guān)注非結(jié)構(gòu)化/文本數(shù)據(jù)的分析和用例。值得花時間在這里的事情很少
-
學習使用API從公共源獲取數(shù)據(jù)
-
執(zhí)行一些基本的情緒分析——可以使用來自twitter API的數(shù)據(jù)來提取特定標簽的tweet,然后可以計算這些tweet背后的情緒和情緒
-
主題建模——當有大量的文檔,并且您想要將它們分組到不同的類別時,這種方法非常有用
就是這樣!現(xiàn)在,您已經(jīng)介紹了所有重要的概念,可以申請任何數(shù)據(jù)科學工作了。我已經(jīng)在我的YouTube頻道上開始了為期100天的學習數(shù)據(jù)科學的教程,如果你感興趣,請加入我,在這里開始你的學習數(shù)據(jù)科學的教程。
https://youtu.be/VaXijSN_SJc
常見問題
有人能在100天內(nèi)成為數(shù)據(jù)科學家?
是的,就像任何人都可以在幾天內(nèi)學會游泳一樣,任何人都可以在100天甚至更短的時間內(nèi)學會數(shù)據(jù)科學。但是就像游泳一樣,要想成為一名優(yōu)秀的游泳運動員或者奧運會游泳運動員,必須通過努力和不斷的練習,數(shù)據(jù)科學也是一樣,通過不斷的練習和努力,你才能成為一名專家。
如果我沿著這教程走下去,我能學到多少?
在教程結(jié)束時,您將有足夠的知識來從事典型的數(shù)據(jù)科學項目。這樣,您就打破了學習障礙,因此只需付出最小的努力和最少的支持,您就能夠繼續(xù)學習數(shù)據(jù)科學中的高級主題。
結(jié)束前的最后信息
一開始,事情可能看起來太復雜,不要不知所措,只要一步一個腳印,繼續(xù)你的學習之旅,這可能需要一些時間,但你一定會到達你的目的地。