大資料現在是個很寬泛的職業方向了。廣義的大資料在工業界分為:
資料倉庫。這個崗位和業務緊密掛鉤,主要做的工作是深入瞭解業務,設計出業務擴充套件性好的資料倉庫。要求是會寫SQL、懂資料倉庫設計。
資料分析/資料探勘/演算法開發。這類崗位屬於大資料的應用,真正把資料轉化為生產力的工作。
我們一般說的大資料方向應該是指3.資料分析/資料探勘/演算法開發。 這個崗位不但要學習本崗位要求的知識和技能,也必須瞭解崗位1、2的技術。比如說,你參與做一個推薦系統,那麼你要獲取資料,簡單分析資料需要用Sql(一般是HiveQL),再複雜點的邏輯得寫MR (MapReduce程式,下同)或者Spark程式,更復雜的邏輯或者場景,無法用規則來解決的問題,就得用上機器學習等知識了。那麼從這個例子可以看出,你需要的。
1.會寫類SQL
學SQL的最好方法就是寫了。因為SQL的語法比較簡單,也沒有什麼原理架構什麼的,所以最好的學習方式是Just write SQL!
2.會寫MR或者Spark程式
做資料探勘和機器學習時候,訓練模型也好,從Hive裡面取資料也好,比較常用的就是寫MR或者Spark程式。做資料倉庫的人,把資料規整放到Hive中,然後我們做分析做挖掘的就直接從Hive中取資料就好了。取出的資料怎麼玩出花樣就靠統計學和機器學習演算法了。訓練模型是計算密集型任務,一般會放到分散式叢集上跑(Hadoop、Spark叢集)上跑,那麼就需要寫分散式計算程式,就是MR和Spark程式了。學習MR和Spark的方法也大多是工程性質的,多寫程式碼。看看Google的MapReduce論文,理解下MapReduce的原理也是有必要的。
上面講到,我們做分析、做挖掘的從Hive裡取出資料,如何玩出花樣,演算法,那麼這類演算法的數學基礎就是概率論和統計學習。這裡推薦中科大陳希孺教授寫的兩本書《概率論與數理統計》和《數理統計學教程》。陳老師講的比較透徹,我的感覺是難啃,但是啃完之後理解的很透徹。
4.機器學習演算法
包括經典的機器學習演算法和深度學習。有個現象挺有意思的,因為工業屆機器學習崗位的人80%以上的時間都在做特徵工程。所謂特徵工程就是理解業務,從業務中提取指標、生成特徵,如果能找到強特徵,對預測效果的提高會很大。真正去寫演算法實現的機會並不多,因為有挺成熟的演算法庫了,比如Spark的MLLib,weka,谷歌的tensorflow平臺,各種機器學習平臺。那麼還要不要深入理解演算法過程了呢?答案是當然要!原因是:
(2)在現有演算法庫的基礎上需要微調,必須深入理解演算法過程才能做得到。
(3)另外,演算法庫也是人寫的,能造好輪子的人很厲害的,造福大眾啊。
這個方向推薦李航的《統計學習方法》和周志華的《機器學習》,這兩本書偏原理。都是中國產書籍的良心之作。我看《統計學習方法》的時候,會拿紙和筆自己寫主要的公式,必要時可以推導,達到的程度是合上書可以把這個演算法的主要公式和推導過程、演算法過程寫出來。理解演算法過程後,可以自己寫實現演算法,比如寫一個決策樹或者樸素貝葉斯。再推薦一本偏實戰的,是《機器學習實戰》(有英文版)。這本書裡面有一些Python寫的例子。
大資料現在是個很寬泛的職業方向了。廣義的大資料在工業界分為:
資料倉庫。這個崗位和業務緊密掛鉤,主要做的工作是深入瞭解業務,設計出業務擴充套件性好的資料倉庫。要求是會寫SQL、懂資料倉庫設計。
資料分析/資料探勘/演算法開發。這類崗位屬於大資料的應用,真正把資料轉化為生產力的工作。
我們一般說的大資料方向應該是指3.資料分析/資料探勘/演算法開發。 這個崗位不但要學習本崗位要求的知識和技能,也必須瞭解崗位1、2的技術。比如說,你參與做一個推薦系統,那麼你要獲取資料,簡單分析資料需要用Sql(一般是HiveQL),再複雜點的邏輯得寫MR (MapReduce程式,下同)或者Spark程式,更復雜的邏輯或者場景,無法用規則來解決的問題,就得用上機器學習等知識了。那麼從這個例子可以看出,你需要的。
1.會寫類SQL
學SQL的最好方法就是寫了。因為SQL的語法比較簡單,也沒有什麼原理架構什麼的,所以最好的學習方式是Just write SQL!
2.會寫MR或者Spark程式
做資料探勘和機器學習時候,訓練模型也好,從Hive裡面取資料也好,比較常用的就是寫MR或者Spark程式。做資料倉庫的人,把資料規整放到Hive中,然後我們做分析做挖掘的就直接從Hive中取資料就好了。取出的資料怎麼玩出花樣就靠統計學和機器學習演算法了。訓練模型是計算密集型任務,一般會放到分散式叢集上跑(Hadoop、Spark叢集)上跑,那麼就需要寫分散式計算程式,就是MR和Spark程式了。學習MR和Spark的方法也大多是工程性質的,多寫程式碼。看看Google的MapReduce論文,理解下MapReduce的原理也是有必要的。
上面講到,我們做分析、做挖掘的從Hive裡取出資料,如何玩出花樣,演算法,那麼這類演算法的數學基礎就是概率論和統計學習。這裡推薦中科大陳希孺教授寫的兩本書《概率論與數理統計》和《數理統計學教程》。陳老師講的比較透徹,我的感覺是難啃,但是啃完之後理解的很透徹。
4.機器學習演算法
包括經典的機器學習演算法和深度學習。有個現象挺有意思的,因為工業屆機器學習崗位的人80%以上的時間都在做特徵工程。所謂特徵工程就是理解業務,從業務中提取指標、生成特徵,如果能找到強特徵,對預測效果的提高會很大。真正去寫演算法實現的機會並不多,因為有挺成熟的演算法庫了,比如Spark的MLLib,weka,谷歌的tensorflow平臺,各種機器學習平臺。那麼還要不要深入理解演算法過程了呢?答案是當然要!原因是:
(2)在現有演算法庫的基礎上需要微調,必須深入理解演算法過程才能做得到。
(3)另外,演算法庫也是人寫的,能造好輪子的人很厲害的,造福大眾啊。
這個方向推薦李航的《統計學習方法》和周志華的《機器學習》,這兩本書偏原理。都是中國產書籍的良心之作。我看《統計學習方法》的時候,會拿紙和筆自己寫主要的公式,必要時可以推導,達到的程度是合上書可以把這個演算法的主要公式和推導過程、演算法過程寫出來。理解演算法過程後,可以自己寫實現演算法,比如寫一個決策樹或者樸素貝葉斯。再推薦一本偏實戰的,是《機器學習實戰》(有英文版)。這本書裡面有一些Python寫的例子。