如何系統地學習資料探勘
資料探勘:What?Why?How?
這個問題思考了很久,作為過來人談一談,建議先看下以前的一些回答。
磨刀不誤砍柴工。在學習資料探勘之前應該明白幾點:
- 資料探勘目前在中國的尚未流行開,猶如屠龍之技。
- 資料初期的準備通常佔整個資料探勘專案工作量的70%左右。
- 資料探勘本身融合了統計學、資料庫和機器學習等學科,並不是新的技術。
- 資料探勘技術更適合業務人員學習(相比技術人員學習業務來的更高效)
- 資料探勘適用於傳統的BI(報表、OLAP等)無法支援的領域。
- 資料探勘專案通常需要重複一些毫無技術含量的工作。
如果你閱讀了以上內容覺得可以接受,那麼繼續往下看。
學習一門技術要和行業靠攏,沒有行業背景的技術如空中樓閣。技術尤其是計算機領域的技術發展是寬泛且快速更替的(十年前做網頁設計都能成立公司),一般人沒有這個精力和時間全方位的掌握所有技術細節。但是技術在結合行業之後就能夠獨當一面了,一方面有利於抓住使用者痛點和剛性需求,另一方面能夠累計行業經驗,使用網際網路思維跨界讓你更容易取得成功。不要在學習技術時想要面面俱到,這樣會失去你的核心競爭力。
一、目前國內的資料探勘人員工作領域大致可分為三類:
- 1)資料分析師:在擁有行業資料的電商、金融、電信、諮詢等行業裡做業務諮詢,商務智慧,出分析報告。
- 2)資料探勘工程師:在多媒體、電商、搜尋、社交等大資料相關行業裡做機器學習演算法實現和分析。
- 3)科學研究方向:在高校、科研單位、企業研究院等高大上科研機構研究新演算法效率改進及未來應用。
二、說說各工作領域需要掌握的技能。
1)資料分析師
- 需要有深厚的數理統計基礎,但是對程式開發能力不做要求。
- 需要熟練使用主流的資料探勘(或統計分析)工具如Business Analytics and Business Intelligence Software(SAS)、SPSS、EXCEL等。
- 需要對與所在行業有關的一切核心資料有深入的理解,以及一定的資料敏感性培養。
- 經典圖書推薦:《概率論與數理統計》、《統計學》推薦David Freedman版、《業務建模與資料探勘》、《資料探勘導論》、《SAS程式設計與資料探勘商業案例》、《Clementine資料探勘方法及應用 》、《Excel 2007 VBA參考大全》、《IBM SPSS Statistics 19 Statistical Procedures Companion》等。
2)資料探勘工程師
- 需要理解主流機器學習演算法的原理和應用。
- 需要熟悉至少一門程式語言如(Python、C、C++、Java、Delphi等)。
- 需要理解資料庫原理,能夠熟練操作至少一種資料庫(Mysql、SQL、DB2、Oracle等),能夠明白MapReduce的原理操作以及熟練使用Hadoop系列工具更好。
- 經典圖書推薦:《資料探勘概念與技術》、《機器學習實戰》、《人工智慧及其應用》、《資料庫系統概論》、《演算法導論》、《Web資料探勘》、《 Python標準庫》、《thinking in Java》、《Thinking in C++》、《資料結構》等。
3)科學研究方向
- 需要深入學習資料探勘的理論基礎,包括關聯規則挖掘 (Apriori和FPTree)、分類演算法(C4.5、KNN、Logistic Regression、SVM等) 、聚類演算法 (Kmeans、Spectral Clustering)。目標可以先吃透資料探勘10大演算法各自的使用情況和優缺點。
- 相對SAS、SPSS來說R語言更適合科研人員The R Project for Statistical Computing,因為R軟體是完全免費的,而且開放的社群環境提供多種附加工具包支援,更適合進行統計計算分析研究。雖然目前在國內流行度不高,但是強烈推薦。
- 可以嘗試改進一些主流演算法使其更加快速高效,例如實現Hadoop平臺下的SVM雲演算法呼叫平臺--web
工程呼叫hadoop叢集。
- 需要廣而深的閱讀世界著名會議論文跟蹤熱點技術。如KDD,ICML,IJCAI,Association
for the Advancement of Artificial Intelligence,ICDM等等;還有資料探勘相關領域期刊:ACM
Transactions on Knowledge Discovery from Data,IEEE
Transactions on Knowledge and Data Engineering,Journal
of Machine Learning Research Homepage,IEEE
Xplore: Pattern Analysis and Machine Intelligence, IEEE Transactions on等。
- 可以嘗試參加資料探勘比賽培養全方面解決實際問題的能力。如Sig
KDD ,Kaggle:
Go from Big Data to Big Analytics等。
- 可以嘗試為一些開源專案貢獻自己的程式碼,比如Apache
Mahout: Scalable machine learning and data mining ,myrrix等(具體可以在SourceForge或GitHub.上發現更多好玩的專案)。
- 經典圖書推薦:《機器學習》 《模式分類》《統計學習理論的本質》《統計學習方法》《資料探勘實用機器學習技術》《R語言實踐》,英文素質是科研人才必備的《Machine Learning: A Probabilistic Perspective》《Scaling up Machine Learning : Parallel and Distributed Approaches》《Data Mining
Using SAS Enterprise Miner : A Case Study Approach》《Python for Data Analysis》等。
三、以下是通訊行業資料探勘工程師的工作感受。
真正從資料探勘專案實踐的角度講,溝通能力對挖掘的興趣愛好是最重要的,有了愛好才可以願意鑽研,有了不錯的溝通能力,才可以正確理解業務問題,才能正確把業務問題轉化成挖掘問題,才可以在相關不同專業人才之間清楚表達你的意圖和想法,取得他們的理解和支援。所以我認為溝通能力和興趣愛好是個人的資料探勘的核心競爭力,是很難學到的;而其他的相關專業知識誰都可以學,算不上個人發展的核心競爭力。
說到這裡可能很多資料倉儲專家、程式設計師、統計師等等都要扔磚頭了,對不起,我沒有別的意思,你們的專業對於資料探勘都很重要,大家本來就是一個整體的,但是作為單獨一個個體的人來說,精力有限,時間有限,不可能這些領域都能掌握,在這種情況下,選擇最重要的核心,我想應該是資料探勘技能和相關業務能力吧(從另外的一個極端的例子,我們可以看, 比如一個迷你型的挖掘專案,一個懂得市場營銷和資料探勘技能的人應該可以勝任。這其中他雖然不懂資料倉儲,但是簡單的Excel就足以勝任高打6萬個樣本的資料處理;他雖然不懂專業的展示展現技能,但是隻要他自己看的懂就行了,這就無需什麼展示展現;前面說過,統計技能是應該掌握的,這對一個人的迷你專案很重要;他雖然不懂程式設計,但是專業挖掘工具和挖掘技能足夠讓他操練的;這樣在迷你專案中,一個懂得挖掘技能和市場營銷業務能力的人就可以圓滿完成了,甚至在一個資料來源中根據業務需求可以無窮無盡的挖掘不同的專案思路,試問就是這個迷你專案,單純的一個資料倉儲專家、單純的一個程式設計師、單純的一個展示展現技師、甚至單純的一個挖掘技術專家,都是無法勝任的)。這從另一個方面也說明了為什麼溝通能力的重要,這些個完全不同的專業領域,想要有效有機地整合在一起進行資料探勘專案實踐,你說沒有好的溝通能力行嗎?
資料探勘能力只能在專案實踐的熔爐中提升、昇華,所以跟著專案學挖掘是最有效的捷徑。國外學習挖掘的人都是一開始跟著老闆做專案,剛開始不懂不要緊,越不懂越知道應該學什麼,才能學得越快越有效果。我不知道國內的資料探勘學生是怎樣學的,但是從網上的一些論壇看,很多都是紙上談兵,這樣很浪費時間,很沒有效率。
另外現在國內關於資料探勘的概念都很混亂,很多BI只是侷限在報表的展示和簡單的統計分析,卻也號稱是資料探勘;另一方面,國內真正規模化實施資料探勘的行業是屈指可數(銀行、保險公司、移動通訊),其他行業的應用就只能算是小規模的,比如很多大學都有些相關的挖掘課題、挖掘專案,但都比較分散,而且都是處於摸索階段,但是我相信資料探勘在中國一定是好的前景,因為這是歷史發展的必然。
講到移動方面的實踐案例,如果你是來自移動的話,你一定知道國內有家叫華院分析的公司(申明,我跟這家公司沒有任何關係,我只是站在資料探勘者的角度分析過中國大多數的號稱資料探勘服務公司,覺得華院還不錯,比很多徒有虛名的大公司來得更實際),他們的業務現在已經覆蓋了絕大多數中國省級移動公司的分析挖掘專案,你上網搜尋一下應該可以找到一些詳細的資料吧。我對華院分析印象最深的一點就是2002年這個公司白手起家,自己不懂不要緊,一邊自學一邊開始擴充客戶,到現在在中國的移動通訊市場全面開花,的確佩服佩服呀。他們最開始都是用EXCEL處理資料,用肉眼比較選擇比較不同的模型,你可以想象這其中的艱難吧。
至於移動通訊的具體的資料探勘的應用,那太多了,比如不同話費套餐的制訂、客戶流失模型、不同服務交叉銷售模型、不同客戶對優惠的彈性分析、客戶群體細分模型、不同客戶生命週期模型、渠道選擇模型、惡意欺詐預警模型,太多了,記住,從客戶的需求出發,從實踐中的問題出發,移動中可以發現太多的挖掘專案。最後告訴你一個祕密,當你資料探勘能力提升到一定程度時,你會發現無論什麼行業,其實資料探勘的應用有大部分是重合的相似的,這樣你會覺得更輕鬆。
四、成為一名資料科學家需要掌握的技能圖。(原文:Data Science:
How do I become a data scientist?)
<img src="http://p2.zhimg.com/e0/56/e0564c41744a3ea5da7ba8242b6d3f5e_m.jpg" data-rawwidth="1550" data-rawheight="1258" class="origin_image zh-lightbox-thumb" width="1550" data-original="http://p2.zhimg.com/e0/56/e0564c41744a3ea5da7ba8242b6d3f5e_r.jpg">
相關文章
- 統計學與資料探勘
- 如何抓住重點,系統高效地學習資料結構與演算法?資料結構演算法
- 理解Transformer [資料探勘深度學習]ORM深度學習
- 優思學院|如何系統地學習精益管理(CLMP)?
- 如何才能夠系統地學習Java併發技術?Java
- ABAP初學者如何系統地學習ABAP程式設計?程式設計
- 零基礎如何系統地學習前端開發?前端
- 統計學與資料探勘的區別
- 資料探勘實習面試面試
- 大資料應用——資料探勘之推薦系統大資料
- 如何更高效的系統學習大資料方面知識?大資料
- 零基礎入門大資料學習,如何才能系統的學好大資料大資料
- MySQL如何系統學習MySql
- 關於資料庫系統的學習資料庫
- 如何更好地學習機器學習?機器學習
- 大資料的系統學習:大資料學習的三個階段概述大資料
- 從小白到大神:快速掌握資料探勘的學習路徑!
- 資料倉儲,資料探勘,OLAP,BI等系統技術深度建設
- 如何學習大資料?大資料
- 《資料結構與演算法之美》如何抓住重點,系統高效地學習資料結構與演算法 (讀後感)資料結構演算法
- 工作學習中如何選擇作業系統?如何學習linux作業系統作業系統Linux
- 資料分析與資料探勘 - 04科學計算
- 大資料時代,如何做資料探勘與分析!大資料
- 從0開始學習大資料探勘分析,新手應該這樣學習大資料分析才靠譜大資料
- 小白如何學習作業系統?作業系統
- 如何系統學習人工智慧人工智慧
- 如何系統學習 iOS 開發?iOS
- 零基礎如何轉行大資料?系統學習路線在此大資料
- python資料探勘需要的第三方庫學習Python
- 想搞資料探勘分析,應該學習java還是python?JavaPython
- 如何提升企業的資料探勘能力
- 如何用資料探勘找到合適房源?
- 教你如何用R進行資料探勘
- 紐約如何利用資料探勘預防火災
- 學Java的,想嘗試轉行大資料和資料探勘,該怎麼規劃學習?Java大資料
- MySQL練習——教學系統資料庫設計MySql資料庫
- 自學資料探勘
- Web資料探勘Web