四年前我一次聽說數(shù)據(jù)挖掘這個詞埠褪,三年前我學習了數(shù)據(jù)挖掘理論知識浓利,兩年前我做了幾個與數(shù)據(jù)挖掘有關的項目,一年前我成為一名數(shù)據(jù)挖掘工程師钞速,今天我把數(shù)據(jù)挖掘入門資料整理了一下贷掖,希望能夠?qū)π氯擞袔椭?/p>
一、python
推薦粗讀《Head First Python》一書渴语,該書淺顯易懂苹威,有C語言基礎的人只需一天就能讀完,并能夠使用python進行簡單編程驾凶⊙栏Γ“Head First”系列的數(shù)都很適合初學者,我還讀過《Head First 設計模式》和《Head First Statistics》调违,感覺都不錯窟哺。不過后兩本,我讀得比較細也比較慢技肩,畢竟當時是首次接觸設計模式和統(tǒng)計學相關知識且轨,書中很多東西對我而言都是全新的。而當我讀《Head First Python》時亩鬼,我已經(jīng)掌握了C殖告、C++、java等多種編程語言雳锋,所以再看python就覺得比較簡單了黄绩。學任何一種編程語言,一定要動手練習玷过。python的集成開發(fā)環(huán)境有很多爽丹,我個人比較青睞PyCharm。
用python做數(shù)據(jù)挖掘的人一般都會用到pandas數(shù)據(jù)分析包辛蚊。推薦閱讀《pandas: powerful Python data analysis toolkit》文檔粤蝎,其中《10 Minutes to pandas》這一節(jié)能讓你輕松上手pandas。讀了這一節(jié)你會知道怎么用一句話得到數(shù)據(jù)的一些基本統(tǒng)計量(每一列特征的均值袋马、標準差初澎、最大最小值、四分位點等),怎么簡單地實現(xiàn)多條件的過濾碑宴,怎么將兩張表按key連接软啼,怎么將數(shù)據(jù)可視化。除了這篇文檔延柠,我還想推薦一本書《利用Python進行數(shù)據(jù)分析》祸挪,這本書和之前文檔的主要內(nèi)容差不多≌昙洌可以書和文檔交叉看贿条,加深印象。與文檔相比增热,書增加了數(shù)據(jù)應用等內(nèi)容整以。與書相比,文檔增加了與R钓葫、SQL對比等內(nèi)容悄蕾。即使是主題相同的章節(jié),例如繪圖础浮,文檔和書將知識組織起來的方式以及側重點也有所不同。個人認為奠骄,文檔和書都值得一看豆同。
二、統(tǒng)計學
雖然我也粗讀過統(tǒng)計學的幾本書含鳞,但從易懂性來說影锈,都沒有學校老師給的ppt好,或者說自己看書比較困難蝉绷,但是聽老師講課就很容易懂鸭廷。所以,我建議有條件的同學能夠選修統(tǒng)計學這門課熔吗,沒條件的同學可以去網(wǎng)上找一些相關視頻辆床,配套書籍可以選擇茆詩松的《概率論與數(shù)理統(tǒng)計》。另外桅狠,《Head First Statistics》一書可以用來預熱讼载。
學了統(tǒng)計學,你至少應該知道基本的抽樣方法中跌、偏差與方差的區(qū)別咨堤、怎樣進行數(shù)據(jù)預處理、怎樣整理和顯示數(shù)據(jù)漩符、數(shù)據(jù)分布的描述統(tǒng)計量有哪些一喘、假設檢驗是用來做什么的、置信區(qū)間的概念嗜暴、R-squared的含義等等凸克。你需要了解各種圖的作用和適用場景议蟆,常用圖包括條形圖、餅圖触徐、直方圖咪鲜、折線圖、箱線圖撞鹉、散點圖疟丙、雷達圖等。你需要了解各種統(tǒng)計量的含義鸟雏,常見統(tǒng)計量包括均值享郊、方差、中位數(shù)孝鹊、四分位數(shù)炊琉、加權平均數(shù)、偏態(tài)又活、峰態(tài)等苔咪。你需要了解一些重要的分布,比如正態(tài)分布柳骄、chi-square分布团赏、t分布、F分布等耐薯。
三舔清、機器學習和數(shù)據(jù)挖掘
機器學習資料首推吳恩達的《斯坦福大學公開課:機器學習課程》視頻。這20集視頻確實是好視頻曲初,但對初學者來說難度偏大体谒。我有了一點機器學習方面的基礎后,再去看該視頻臼婆,還花了2.5倍的時間才基本看懂抒痒。每當我跟不上視頻時,就會暫湍慷В或者回退评汰,再仔細看看課件,所以看完視頻花掉的時間是視頻原時長的2.5倍痢虹。另外被去,周志華的《機器學習》和李航的《統(tǒng)計學習方法》可以作為機器學習入門書籍,經(jīng)典教材《Pattern Recognition and Machine Learning》可以作為機器學習進階書籍奖唯,而《機器學習實戰(zhàn)》一書能手把手地教你怎么實現(xiàn)機器學習模型的底層算法(書中包含了大量的程序清單)惨缆。
數(shù)據(jù)挖掘方面,推薦Jiawei Han的《數(shù)據(jù)挖掘概念與技術》。該書比較容易讀懂坯墨,內(nèi)容廣泛且實用性強寂汇,特別適合初學者。
四捣染、其他資料和建議
除了系統(tǒng)化的學習專業(yè)知識骄瓣,我們也可以每天吸收一些碎片化的知識。例如耍攘,Quora上有不少關于機器學習和數(shù)據(jù)挖掘的問答榕栏,其答案質(zhì)量普遍高于知乎,有興趣的同學可以常去Quora的機器學習相關版塊逛逛蕾各。訂閱好東西傳送門的《機器學習日報》是一個不錯的選擇扒磁。每天從日報中挑選1~2篇文章讀讀,可以擴展自己的知識面式曲,同時養(yǎng)成天天學習的好習慣妨托。
從Quora和《機器學習日報》中獲取的一些知識點:
(1)隨機森林模型不適合用稀疏特征。
(2)測試集必須使用與訓練集相同的方法進行預處理吝羞。
(3)L1正則(特征選擇)最小樣本數(shù)目m與特征n呈log關系兰伤,m = O(log n) ;
? ? ? ? ?L2正則(旋轉不變)最小樣本數(shù)目m與特征n呈線性關系钧排,m = O(n)?医清。
(4)標準的PCA是一種線性轉換技術。
(5)呈長尾分布的特征通常需要進行對數(shù)轉換卖氨。
(6)線性SVM適合小樣本。
(7)AUC適合作為類不平衡問題的衡量標準负懦。
(8)在nested k-foldcross?validation中筒捺,“外層循環(huán)”的目的是模型評估,“內(nèi)層循環(huán)”的目的是模型選擇纸厉。
(9)在樣本數(shù)量較少的情況下系吭,極大似然估計的效果比普通的最小二乘法差。
想干數(shù)據(jù)挖掘這一行颗品,光有理論知識是不夠的肯尺,我們還需要積累實戰(zhàn)經(jīng)驗。對于學生來講躯枢,可以跟著老師做項目则吟,可以參加各種大數(shù)據(jù)競賽,也可以去公司實習锄蹂。如果是參加競賽的話氓仲,一般比賽結束后,前幾名的算法會公開。我們要特別關注一下他們的算法創(chuàng)新點敬扛,說不定在下一個項目中就能用上晰洒。
阿里巴巴第一屆大數(shù)據(jù)競賽前9名團隊的算法創(chuàng)新點整理:
第九:
1、缺失值填充啥箭。
2谍珊、考慮了行為轉移特征(例如曾經(jīng)購買過該品牌,近期再次發(fā)生點擊但尚未購買急侥;近期從購物車轉移到收藏夾)砌滞。
第八:
1、在LR模型中缆巧,用dummy coding的方法處理了所有的特征布持。
第七:
1、模型融合做得不錯陕悬。分別用滑動窗口和固定窗口建模题暖。再用LR進行一級模型融合,最后對第一級的預測結果進行平均融合捉超。
第六:
1胧卤、對不同的用戶-品牌類型進行了分類,并采取了不同的處理方法拼岳。
第五:
1枝誊、對正例采取上采樣方式,負例采取下采樣方式惜纸。
2叶撒、先用一個欠擬合的random forest初始化gbrt的殘差,再用一個樹的棵樹不是很大的gbrt來訓練耐版,從而能夠在相對短的時間內(nèi)得到比用較大棵樹的gbrt還要高一些的性能祠够。
第四:
1、對特征進行Laplace平滑粪牲。
第三:
1古瓤、對數(shù)據(jù)進行歸一化、分箱和去噪腺阳。
第二:
1落君、去除離群點。
第一:
1亭引、用LR濾去超過80%的樣本绎速。
2、采用了神經(jīng)網(wǎng)絡算法痛侍。