漫谈数据挖掘从入门到进阶
入門:
?
數據挖掘入門的書籍,中文的大體有這些:
Jiawei?Han的《數據挖掘概念與技術》
Ian?H.?Witten?/?Eibe?Frank的《數據挖掘?實用機器學習技術》
Tom?Mitchell的《機器學習》
TOBY?SEGARAN的《集體智慧編程》
Anand?Rajaraman的《大數據》
Pang-Ning?Tan的《數據挖掘導論》
Matthew?A.?Russell的《社交網站的數據挖掘與分析》
?
很多人的第一本數據挖掘書都是Jiawei?Han的《數據挖掘概念與技術》,這本書也是我們組老板推薦的入門書(我個人覺得他之所以推薦是因為Han是他的老師)。其實我個人來說并不是很推薦把這本書。這本書什么都講了,甚至很多書少有涉及的一些點比如OLAP的方面都有涉獵。但是其實這本書對于初學者不是那么友好的,給人一種教科書的感覺,如果你有大毅力讀完這本書,也只能獲得一些零碎的概念的認識,很難上手實際的項目。
?
我個人推薦的入門書是這兩本:TOBY?SEGARAN的《集體智慧編程》和Ian?H.?Witten?/?Eibe?Frank的《數據挖掘?實用機器學習技術》
《集體智慧編程》很適合希望了解數據挖掘技術的程序員,這本書講述了數據挖掘里面的很多實用的算法,而且最重要的是其講述的方式不是像Han那種大牛掉書袋的講法,而是從實際的例子入手,輔以python的代碼,讓你很快的就能理解到這種算法能夠應用在哪個實際問題上,并且還能自己上手寫寫代碼。唯一的缺點是不夠深入,基本沒有數學推導,而且不夠全面,內容不夠翔實。不過作為一本入門書這些缺點反而是幫助理解和入門的優點。
推薦的另一本《數據挖掘?實用機器學習技術》則相對上一本書要稍微難一點,不過在容易理解的程度上依然甩Han老師的書幾條街,其作者就是著名的Weka的編寫者。整本書的思想脈絡也是盡可能的由易到難,從簡單的模型入手擴展到現實生活中實際的算法問題,最難能可貴的是書的最后還稍微講了下如何使用weka,這樣大家就能在學習算法之余能夠用weka做做小的實驗,有直觀的認識。?
看完上述兩本書后,我覺得大體數據挖掘就算有個初步的了解了。往后再怎么繼續入門,就看個人需求了。
如果是只是想要稍微了解下相關的技術,或者作為業余愛好,則可隨便再看看Anand?Rajaraman的《大數據》以及Matthew?A.?Russell的《社交網站的數據挖掘與分析》。前者是斯坦福的"Web挖掘"這門課程的材料基礎上總結而成。選取了很多數據挖掘里的小點作為展開的,不夠系統,但講的挺好,所以適合有個初步的了解后再看。后者則亦是如此,要注意的是里面很多api因為GFS的緣故不能直接實驗,也是個遺憾
?
如果是繼續相關的研究學習,我認為則還需要先過一遍Tom?Mitchell的《機器學習》。這本書可以看做是對于十多年前的機器學習的一個綜述,作者簡單明了的講述了很多流行的算法(十年前的),并且對于各個算法的適用點和特點都有詳細的解說,輕快地在一本薄薄的小書里給了大家一個機器學習之旅。
?
進階:
?
進階這個話題就難說了,畢竟大家對于進階的理解各有不同,是個仁者見仁的問題。就我個人來說,則建議如下展開:
?
視頻學習方面:
可以看看斯坦福的《機器學習》這門課程的視頻,最近聽說網易公開課已經全部翻譯了,而且給出了雙語字幕,更加容易學習了^_^
?
書籍學習方面:
我個人推薦的是這樣:可以先看看李航的《統計學習方法》,這本書著重于數學推導,能讓我們很快的對于一些算法的理解更加深入。
有了上面這本書的基礎,就可以開始啃一些經典名著了。這些名著看的順序可以不分先后,也可以同時學習:
Richard?O.?Duda的《模式分類》這本書是力薦,很多高校的數據挖掘導論課程的教科書便是這本(也是我的數據挖掘入門書,很有感情的)。如果你不通讀這本書,你會發現在你研究很多問題的時候,甚至一些相對簡單的問題(比如貝葉斯在高斯假設下為什么退化成線性分類器)都要再重新回頭讀這本書。
Christopher?M.?Bishop的《Pattern?Recognition?And?Machine?Learning》這本書也是經典巨著,整本書寫的非常清爽。
《The?Elements?of?Statistical?Learning》這本書有句很好的吐槽“機器學習?--?從入門到精通”可以作為這本書的副標題。可以看出這本書對于機器學習進階的重要性。值得一說的是這本書雖然有中文版,但是翻譯之爛也甚是有名,聽說是學體育的翻譯的。
Hoppner,?Frank的《Guide?to?Intelligent?Data?Analysis》這本書相對于上面基本經典巨著并不出名,但是寫的甚好,是knime官網上推薦的,標榜的是解決實際生活中的數據挖掘問題,講述了CRISP-DM標準化流程,每章后面給出了R和knime的應用例子。
以前寫過的讀書筆記http://www.cnblogs.com/flclain/archive/2012/11/23/2785079.html
?
項目方面:
事實上,我覺得從進階起就應該上手一些簡單的項目了。如果不實踐只是看書和研究算法,我覺得是無法真正理解數據挖掘的精髓所在的。打個簡單的比方,就算你看完了C++?Primer、effective?C++等等書籍,如果自己不寫C++,那么自己也就會停留在hello?world的級別。實踐出真知非常切合數據挖掘這門學科,實際上手項目后才會發現什么叫"80%的準備,20%的建模",real?world的問題我認為并不是僅僅靠modeling就能很好的解決的。詳細的可以看看《Guide?to?Intelligent?Data?Analysis》就能略知一二。如果上手做推薦或者一些簡單的項目,也可以考慮用用mahout,推薦的入門手冊是《mahout?in?action》。項目問題說來話長,有時間會以CRISP流程為引單獨作文,這里也就不詳談了。
?
?
軟件方面:
我常用而且推薦的軟件有如下,這里只是簡單的列出,以后有時間再詳細分析和寫出入門:
Weka?Java的軟件,可以集成到自己的項目中
Orange?一個用python寫的數據挖掘開源軟件,界面做的很漂亮,可以做圖形化實驗,也可以用python調用編程。
Knime?和Orange類似,特點是可以集成weka和R等開源軟件
SAS的EM模塊以及R?還有最最經典的matlab大大
不過引用余凱大大的一個weibo來說
“不用Matlab的理由太多,稍微列一下,大家補充吧:
1. 積重難返,最后工作效率反而越來越低;
2. follow production protocol, 相當于學習無數程序員的實踐經驗;
3. 不能駕馭算法和系統的人不能真正作出有實用價值的研究成果;
4. 百度騰訊阿里谷歌面試通不過;
5. Matlab很貴”
這里有篇文有簡要的介紹上面的部分開源軟件http://www.oschina.net/question/12_14026
?
再往后:
再往后的其實就是我就是覺得是學數學了,然后就是深入讀一些你感興趣的topic的書籍和paper,接項目,做項目了。發展有數據分析師或者去專門的企業做數據研究員,當然混學術界的我就不清楚了。
轉載?http://www.cnblogs.com/flclain/archive/2012/12/22/2829317.html
轉載于:https://www.cnblogs.com/MengYan-LongYou/p/3175636.html
總結
以上是生活随笔為你收集整理的漫谈数据挖掘从入门到进阶的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP简单操作Excel
- 下一篇: 百度富文本编辑器的应用技巧---在一个页