一名數據挖掘工程師給新人整理的入門資料


四年前我一次聽說數據挖掘這個詞,三年前我學習了數據挖掘理論知識,兩年前我做了幾個與數據挖掘有關的項目,一年前我成為一名數據挖掘工程師,今天我把數據挖掘入門資料整理了一下,希望能夠對新人有幫助。

一、python

推薦粗讀《Head First Python》一書,該書淺顯易懂,有C語言基礎的人只需一天就能讀完,並能夠使用python進行簡單編程。“Head First”系列的數都很適合初學者,我還讀過《Head First 設計模式》和《Head First Statistics》,感覺都不錯。不過后兩本,我讀得比較細也比較慢,畢竟當時是首次接觸設計模式和統計學相關知識,書中很多東西對我而言都是全新的。而當我讀《Head First Python》時,我已經掌握了C、C++、java等多種編程語言,所以再看python就覺得比較簡單了。學任何一種編程語言,一定要動手練習。python的集成開發環境有很多,我個人比較青睞PyCharm。

 

用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的《數據挖掘概念與技術》。該書比較容易讀懂,內容廣泛且實用性強,特別適合初學者。

四、其他資料和建議

除了系統化的學習專業知識,我們也可以每天吸收一些碎片化的知識。例如,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%的樣本。

采用了神經網絡算法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM