四年前我一次據說數據挖掘這個詞,三年前我學習了數據挖掘理論知識,兩年前我作了幾個與數據挖掘有關的項目,一年前我成爲一名數據挖掘工程師,今天我把數據挖掘入門資料整理了一下,但願可以對新人有幫助。java
推薦粗讀《Head First Python》一書,該書淺顯易懂,有C語言基礎的人只需一天就能讀完,並可以使用python進行簡單編程。「Head First」系列的數都很適合初學者,我還讀過《Head First 設計模式》和《Head First Statistics》,感受都不錯。不事後兩本,我讀得比較細也比較慢,畢竟當時是首次接觸設計模式和統計學相關知識,書中不少東西對我而言都是全新的。而當我讀《Head First Python》時,我已經掌握了C、C++、java等多種編程語言,因此再看python就以爲比較簡單了。學任何一種編程語言,必定要動手練習。python的集成開發環境有不少,我我的比較青睞PyCharm。python
用python作數據挖掘的人通常都會用到pandas數據分析包。推薦閱讀《pandas: powerful Python data analysis toolkit》文檔,其中《10 Minutes to pandas》這一節能讓你輕鬆上手pandas。讀了這一節你會知道怎麼用一句話獲得數據的一些基本統計量(每一列特徵的均值、標準差、最大最小值、四分位點等),怎麼簡單地實現多條件的過濾,怎麼將兩張表按key鏈接,怎麼將數據可視化。除了這篇文檔,我還想推薦一本書《利用Python進行數據分析》,這本書和以前文檔的主要內容差很少。能夠書和文檔交叉看,加深印象。與文檔相比,書增長了數據應用等內容。與書相比,文檔增長了與R、SQL對比等內容。即便是主題相同的章節,例如繪圖,文檔和書將知識組織起來的方式以及側重點也有所不一樣。我的認爲,文檔和書都值得一看。算法
雖然我也粗讀過統計學的幾本書,但從易懂性來講,都沒有學校老師給的ppt好,或者說本身看書比較困難,可是聽老師講課就很容易懂。因此,我建議有條件的同窗可以選修統計學這門課,沒條件的同窗能夠去網上找一些相關視頻,配套書籍能夠選擇茆詩鬆的《機率論與數理統計》。另外,《Head First Statistics》一書能夠用來預熱。編程
學了統計學,你至少應該知道基本的抽樣方法、誤差與方差的區別、怎樣進行數據預處理、怎樣整理和顯示數據、數據分佈的描述統計量有哪些、假設檢驗是用來作什麼的、置信區間的概念、R-squared的含義等等。你須要瞭解各類圖的做用和適用場景,經常使用圖包括條形圖、餅圖、直方圖、折線圖、箱線圖、散點圖、雷達圖等。你須要瞭解各類統計量的含義,常見統計量包括均值、方差、中位數、四分位數、加權平均數、偏態、峯態等。你須要瞭解一些重要的分佈,好比正態分佈、chi-square分佈、t分佈、F分佈等。設計模式
機器學習資料首推吳恩達的《斯坦福大學公開課:機器學習課程》視頻。這20集視頻確實是好視頻,但對初學者來講難度偏大。我有了一點機器學習方面的基礎後,再去看該視頻,還花了2.5倍的時間才基本看懂。每當我跟不上視頻時,就會暫停或者回退,再仔細看看課件,因此看完視頻花掉的時間是視頻原時長的2.5倍。另外,周志華的《機器學習》和李航的《統計學習方法》能夠做爲機器學習入門書籍,經典教材《Pattern Recognition and Machine Learning》能夠做爲機器學習進階書籍,而《機器學習實戰》一書能手把手地教你怎麼實現機器學習模型的底層算法(書中包含了大量的程序清單)。網絡
數據挖掘方面,推薦Jiawei Han的《數據挖掘概念與技術》。該書比較容易讀懂,內容普遍且實用性強,特別適合初學者。dom
除了系統化的學習專業知識,咱們也能夠天天吸取一些碎片化的知識。例如,Quora上有很多關於機器學習和數據挖掘的問答,其答案質量廣泛高於知乎,有興趣的同窗能夠常去Quora的機器學習相關版塊逛逛。訂閱好東西傳送門的《機器學習日報》是一個不錯的選擇。天天從日報中挑選1~2篇文章讀讀,能夠擴展本身的知識面,同時養整天天學習的好習慣。機器學習
從Quora和《機器學習日報》中獲取的一些知識點:編程語言
隨機森林模型不適合用稀疏特徵。性能
測試集必須使用與訓練集相同的方法進行預處理。
L1正則(特徵選擇)最小樣本數目m與特徵n呈log關係,m = O(log n) ;
L2正則(旋轉不變)最小樣本數目m與特徵n呈線性關係,m = O(n) 。
標準的PCA是一種線性轉換技術。
呈長尾分佈的特徵一般須要進行對數轉換。
線性SVM適合小樣本。
AUC適合做爲類不平衡問題的衡量標準。
在nested k-foldcross validation中,「外層循環」的目的是模型評估,「內層循環」的目的是模型選擇。
在樣本數量較少的狀況下,極大似然估計的效果比普通的最小二乘法差。
想幹數據挖掘這一行,光有理論知識是不夠的,咱們還須要積累實戰經驗。對於學生來說,能夠跟着老師作項目,能夠參加各類大數據競賽,也能夠去公司實習。若是是參加競賽的話,通常比賽結束後,前幾名的算法會公開。咱們要特別關注一下他們的算法創新點,說不定在下一個項目中就能用上。
阿里巴巴第一屆大數據競賽前9名團隊的算法創新點整理:
第九:
缺失值填充。
考慮了行爲轉移特徵(例如曾經購買過該品牌,近期再次發生點擊但還沒有購買;近期從購物車轉移到收藏夾)。
第八:
在LR模型中,用dummy coding的方法處理了全部的特徵。
第七:
模型融合作得不錯。分別用滑動窗口和固定窗口建模。再用LR進行一級模型融合,最後對第一級的預測結果進行平均融合。
第六:
對不一樣的用戶-品牌類型進行了分類,並採起了不一樣的處理方法。
第五:
對正例採起上採樣方式,負例採起下采樣方式。
先用一個欠擬合的random forest初始化gbrt的殘差,再用一個樹的棵樹不是很大的gbrt來訓練,從而可以在相對短的時間內獲得比用較大棵樹的gbrt還要高一些的性能。
第四:
對特徵進行Laplace平滑。
第三:
對數據進行歸一化、分箱和去噪。
第二:
去除離羣點。
第一:
用LR濾去超過80%的樣本。
採用了神經網絡算法。