我是學Java的,想嘗試大數據和數據挖掘,該怎麼規劃學習?

著做權歸做者全部。
商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
做者:譚欣
連接:http://www.zhihu.com/question/21380122/answer/22156159
來源:知乎

大數據有兩個方向,一個是偏計算機的,另外一個是偏經濟的。你學過Java,因此你能夠偏將計算機

基礎
1. 讀書《Introduction to Data Mining》,這本書很淺顯易懂,沒有複雜高深的公式,很合適入門的人。
另外能夠用這本書作參考《Data Mining : Concepts and Techniques》。第二本比較厚,也多了一些數據倉庫方面的知識。
若是對算法比較喜歡,能夠再閱讀《Introduction to Machine Learning》。
固然,還有《機器學習:實用案例解析》

2. 實現經典算法。有幾個部分:
a. 關聯規則挖掘 (Apriori, FPTree, etc.)
b. 分類 (C4.5, KNN, Logistic Regression, SVM, etc.)
c. 聚類 (Kmeans, DBScan, Spectral Clustering, etc.)
d. 降維 (PCA, LDA, etc.)
e. 推薦系統 (基於內容的推薦,協同過濾,如矩陣分解等)
而後在公開數據集上測試,看實現的效果。能夠在下面的網站找到大量的公開數據集: UCI Machine Learning Repository/

3. 熟悉幾個開源的工具: Weka (用於上手); LibSVM, scikit-learn, Shogun

4. 到 Kaggle: Go from Big Data to Big Analytics/ 上參加幾個101的比賽,學會如何將一個問題抽象成模型,並從原始數據中構建有效的特徵 (Feature Engineering).

到這一步的話基本幾個國內的大公司都會給你面試的機會。

進階篇:

1. 讀書,下面幾部都是大部頭,但學完進步很是大。
a.《Pattern Recognition and Machine Learning》
b.《The Elements of Statistical Learning》
c.《Machine Learning: A Probabilistic Perspective》
第一本比較偏Bayesian;第二本比較偏Frequentist;第三本在二者之間,但我以爲跟第一本差很少,不過加了很多新內容。固然除了這幾本大而全的,還有不少介紹不一樣領域的書,例如《Boosting Foundations and Algorithms》,《Probabilistic Graphical Models Principles and Techniques》;以及理論一些的《Foundations of Machine Learning》,《Optimization for Machine Learning》等等。這些書的課後習題也很是有用,作了纔會在本身寫Paper的時候推公式。

2. 讀論文。包括幾個相關會議:KDD,ICML,NIPS,IJCAI,AAAI,WWW,SIGIR,ICDM;以及幾個相關的期刊:TKDD,TKDE,JMLR,PAMI等。跟蹤新技術跟新的熱點問題。固然,若是作相關research,這一步是必須的。例如咱們組的風格就是上半年讀Paper,暑假找問題,秋天作實驗,春節左右寫/投論文。

3. 跟蹤熱點問題。例如最近幾年的Recommendation System,Social Network,Behavior Targeting等等,不少公司的業務都會涉及這些方面。以及一些熱點技術,例如如今很火的Deep Learning。

4. 學習大規模並行計算的技術,例如MapReduce、MPI,GPU Computing。基本每一個大公司都會用到這些技術,由於現實的數據量很是大,基本都是在計算集羣上實現的。

5. 參加實際的數據挖掘的競賽,例如KDDCUP,或 Kaggle: Go from Big Data to Big Analytics/ 上面的競賽。這個過程會訓練你如何在一個短的時間內解決一個實際的問題,並熟悉整個數據挖掘項目的全過程。 6. 參與一個開源項目,如上面提到的Shogun或scikit-learn還有Apache的Mahout,或爲一些流行算法提供更加有效快速的實現,例如實現一個Map/Reduce平臺下的SVM。這也是鍛鍊Coding的能力。(轉)
相關文章
相關標籤/搜索