天天看點

如何系統地學習資料挖掘?

如何系統地學習資料挖掘?

看資料挖掘方面的算法理論時經常感覺一些公式的推導過程如天書一般,例如看svm的數學證明,em算法..,感覺知識跳躍比較大,那麼資料挖掘系統的學習過程是怎麼樣?

磨刀不誤砍柴工。在學習資料挖掘之前應該明白幾點:

資料挖掘目前在中國的尚未流行開,猶如屠龍之技。

資料初期的準備通常占整個資料挖掘項目工作量的70%左右。

資料挖掘本身融合了統計學、資料庫和機器學習等學科,并不是新的技術。

資料挖掘技術更适合業務人員學習(相比技術人員學習業務來的更高效)

資料挖掘适用于傳統的bi(報表、olap等)無法支援的領域。

資料挖掘項目通常需要重複一些毫無技術含量的工作。

如果你閱讀了以上内容覺得可以接受,那麼繼續往下看。

學習一門技術要和行業靠攏,沒有行業背景的技術如空中樓閣。技術尤其是計算機領域的技術發展是寬泛且快速更替的(十年前做網頁設計都能成立公司),一般人 沒有這個精力和時間全方位的掌握所有技術細節。但是技術在結合行業之後就能夠獨當一面了,一方面有利于抓住使用者痛點和剛性需求,另一方面能夠累計行業經 驗,使用網際網路思維跨界讓你更容易取得成功。不要在學習技術時想要面面俱到,這樣會失去你的核心競争力。

一、目前國内的資料挖掘人員工作領域大緻可分為三類。

資料分析師:在擁有行業資料的電商、金融、電信、咨詢等行業裡做業務咨詢,商務智能,出分析報告。

科學研究方向:在高校、科研機關、企業研究院等高大上科研機構研究新算法效率改進及未來應用。

二、說說各工作領域需要掌握的技能。 

(1).資料分析師

需要有深厚的數理統計基礎,但是對程式開發能力不做要求。

需要熟練使用主流的資料挖掘(或統計分析)工具如business analytics and business intelligence software(sas)、spss、excel等。

需要對與所在行業有關的一切核心資料有深入的了解,以及一定的資料敏感性培養。

(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處理資料,用肉眼比較選擇比較不同的模型,你可以想象這其 中的艱難吧。

至于移動通訊的具體的資料挖掘的應用,那太多了,比如不同話費套餐的制訂、客戶流失模型、不同服務交叉銷售模型、不同客戶對優惠的彈性分析、客戶群體 細分模型、不同客戶生命周期模型、管道選擇模型、惡意欺詐預警模型,太多了,記住,從客戶的需求出發,從實踐中的問題出發,移動中可以發現太多的挖掘項 目。最後告訴你一個秘密,當你資料挖掘能力提升到一定程度時,你會發現無論什麼行業,其實資料挖掘的應用有大部分是重合的相似的,這樣你會覺得更輕松。

——專自中國統計網

繼續閱讀