天天看點

學習大資料處理的4步走(文科生篇)

作者:愛資料網
學習大資料處理的4步走(文科生篇)
學習大資料處理的4步走(文科生篇)

很多文科生想轉行/對資料行業感興趣的都會困擾的一個問題,到底要怎麼學大資料處理?我想了想,結合自己的學習體會,做個簡單的分享。不一定适合每個人,但是,可能對于很大一部分文科生來說,有參考價值。

01

使用基礎程式設計

不以任務為導向,全面的學習一個程式設計語言的基礎知識。

怎麼叫全面呢?拿python舉例。

從“hello world”、變量類型等入手,一直學到面向對象的程式設計。關于面向對象的程式設計(OOP),争議比較大,我多說兩句。跟國内文科類院系講程式設計的老師聊過,基本上沒人講OOP。不是因為老師們都不會,而是講起來比較費勁,學生了解起來要花較多時間,而真正到課堂的最終目标——資料可視化、簡單的資料統計分析等任務來說,又很少會用到OOP。加之文科生本來對程式設計就有畏難情緒,是以,老師們盡量把課堂知識簡化到調用包、搭配使用不同軟體/工具來讓“程式設計”學習看起來比較有趣。

但是,一旦進入機器學習和深度學習,OOP的相關應用就俯拾皆是。比如每次的執行個體化,都是調用一個對象。另外,在機器學習的很多手把手的教程裡,都會出現自制的Object(通常用來畫圖,或者把整個流程管道化)。有些教程的文字講解部分,也會涉及OOP中類的繼承等功能性問題,是以,沒有紮實的OOP常識,會很快就遇到瓶頸。當然,OOP隻是舉個例子,目的是說明:學好程式設計基本功的重要性。

學習大資料處理的4步走(文科生篇)

注意,這裡的程式設計基本功并不包括各種擴充包,是以學起來還是很快的。以python為例,學習基礎程式設計,并不需要學習numpy, pandas,scipy, matplotlib和 seaborn。

理由如下:

  • numpy的學習最好結合線性代數一起學,這個後面會說到
  • pandas是建立在numpy之上的,是以也不着急學
  • scipy 最好結合統計一起學
  • matplotlib 和 seaborn,在機器學習中會大量用到,邊用邊學,現學現用,用啥學啥,比較高效

02

上手幾個機器學習的項目

github或者各種有代碼示例的機器學習教程上的項目,找幾個來做做。

重在了解機器學習的流程,掌握幾種最基本的算法(如:linear/logistic regrassion, random forest, SGD等)、可用的評價名額(各種loss function, utility function, recall, precision, f1 score, sensitivity等) 和模型選擇、模型調試(GridSearch, RandomSearch)等基礎知識。同時,熟悉你所用的架構及其代碼規範(如:fit, predict, transform等函數的基本用法),并掌握過拟合/欠拟合時的模型調試方向。

學習大資料處理的4步走(文科生篇)

在上手機器學習項目的同時,你會有很多機會用到各種包。比如numpy, matplotlib等。雖然沒學過,但是可以通過修改代碼參數,快速掌握項目中用到的相關包的基本功能,特别是畫圖的代碼操作。除非你以後的方向是資料可視化,否則,可能很少有人會系統學習畫圖的相關代碼知識。如果不是特别追求完美、漂亮,那麼,畫圖方面,我的建議是:夠用就行。基本上跑過幾個項目後,常用的畫圖代碼你已經耳熟手熟了。

03

學線性代數

這一步是繞不過去的。但是,為什麼放在這個地方呢?原因有二。

1. 放在一開始的話,文科生可能根本意識不到線性代數知識有什麼用?是以,沒有學習的動力。

2. 放在更後面的話,沒有辦法深入了解各種算法的内在差異,所謂的“學會機器學習/深度學習”其實隻是能胡亂套用集中模型,做不到 “根據具體的應用場景選用合适的算法”。本質上依舊是亂打亂撞。

學習大資料處理的4步走(文科生篇)

線性代數怎麼學呢?

視訊的,書籍的,網上的資源一大把,可汗學院啊,3b1b啊,太多了,就不羅嗦了。這裡想說的是,結合線性代數,可以開始學numpy了。numpy的很多屬性和功能都與線性代數知識密不可分。

比如np.eye(3)就是傳回一個3*3的機關矩陣。之前一直不了解eye是什麼梗,後來知道機關矩陣在數學裡簡寫為 大寫的I,諧音是eye,so 。。。至于列向量、行向量等概念,也與A_1darray[np.newaxis, ;], A_1darray[:, np.newaxis]等代碼遙相呼應。

微積分其實也就是導數和偏導數這部分要學,就不單獨列出了。

04

回到項目,精研算法

拿之前做過的機器學習項目,或者再找幾個進階的項目,從算法的角度重新考慮模型選擇和模型調試問題,結合之前學過的線性代數和微積分知識,打開算法的黑盒子,真正掌握機器學習。

學習大資料處理的4步走(文科生篇)

其實,一旦你敲過幾套項目的代碼,學了基本的線性代數和微積分知識,後面的路就寬了。

學習大資料處理的4步走(文科生篇)
學習大資料處理的4步走(文科生篇)

繼續閱讀