1. 程式人生 > >資料探勘方面的研究必須用的那些知識!!!

資料探勘方面的研究必須用的那些知識!!!

關於資料探勘方面的研究,我原來也走過一些彎路。其實從資料探勘的起源可以發現,它並不是一門嶄新的科學,而是綜合了統計分析、機器學習、人工智慧、資料庫等諸多方面的研究成果而成,同時與專家系統、知識管理等研究方向不同的是,資料探勘更側重於應用的層面。

 

因此來說,資料探勘融合了相當多的內容,試圖全面瞭解所有的細節會花費很長的時間。因此我建議你的第一步是用大概三個月的時間瞭解資料探勘的幾個常用技術:分類、聚類、預測、關聯分析、孤立點分析等等。這種瞭解是比較粗的,目標是明白這些技術是用來幹什麼的,典型的演算法大致是怎樣的,以及在什麼情況下應該選用什麼樣的技術和演算法。

 

經過初步瞭解之後,就要進入選題的階段,選擇自己感興趣的某個具體方向,然後通讀該方向的經典論文(綜述、主要發展方向、應用成果)。選題階段可能會花費 較長的時間,比如一年。此時,要逐漸明確突破點,也就是將來你論文的創新點。創新對於研究來說非常重要,一方面該創新的確比原來的方法要好,另一方面該創 新的確具有實用的價值。

 

隨後,就要來實現自己的想法。通常對於碩士論文來說,需要建立原型系統,進行試驗,並用試驗結果來支援自己的論文主題。原型系統就是對自己創新點的實現,需要很好地設計和開發。需要注意的是,原型系統的建立和開發商用系統不同,需要體現比較好的理論基礎。也就是說,原型系統並不是簡單地用於實現功能,而是將你的一整套理論付諸實現。這種理論基礎也將會包含在你的論文中,以體現論文的理論高度。

在這裡我還是要推薦下我自己建的大資料學習交流裙:805127855, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴。
 

原型系統的搭建以及產生令人信服試驗結果,這個過程一般需要至少一年的時間。所以要集中精力於核心部分(體現論文創新點的部分),外圍的介面等等不應投入太多的精力,以免進度失控。

 

最後是論文的整理和寫作了。建議你在之前的階段中逐步先寫出一些篇幅較短的論文(用於發在期刊、會議上),比如綜述、體系框架、演算法核心、應用等等。這樣在最後寫畢業論文時就有了足夠多的內容,會寫得更好更快一些。

 

以上只是泛泛而談。其實我覺得其中的關鍵點在於選題,而選題的好壞取決於你對資料探勘研究現狀的瞭解、你的興趣和專長、以及該方向在應用上的意義。建議你和導師、同行多交流,能夠讓自己的方向更清晰。

 

至於資料探勘領域的就業,應該來說還是前景不錯的。如果你對研究有興趣,象微軟研究院、Google、高校研究所都是不錯的地方;如果你對實際應用有興趣,很多大的公司包括IBM、Accenture、亞信等等都有相應的人力需求,當然一些甲方的單位比如證券、保險、金融等等單位也都需要分析人才。

關於論文如何創新

 

“創新”是個很尖銳的問題。以前我幫導師審論文時,給論文評分包括幾個要素,分別是理論基礎是否堅實、研究問題的重要性、研究成果的創新性等。

 

所謂創新,就是你解決問題的方法是否和其他人的解決方法有所不同,而這種不同又是否更有利於解決問題。因此,要發現創新點,實際上需要充分的準備和深入的研究。

 

①充分的準備:既然創新是找出解決問題的更好方法,那麼首先你就要發現問題,而且要發現有價值的問題。當找到這種問題時,再去查詢有沒有人提出瞭解決這個問題的方法,他們的方法是怎樣的,還存在什麼不足之處。

 

這個階段需要做大量的調查蒐集的工作,也是做研究的準備階段,常常需要通讀相關研究領域的經典文獻以及最新進展,寫讀書筆記予以總結。

 

②深入的研究:當你發現了值得研究的問題,並且知道在這個問題上還沒有很好的解決方法時,你就有了創新的機會。找出現有解決方法的不足之處,提出自己的解 決思路,並予以驗證,通過試驗或者推理證明你的方法是有效的,創新點也就產生了。說起來容易做起來難,就象醞釀一個新發明一樣,常常會需要大量的試驗和周 密的思考,而且也有可能忙了很久而一無所獲。

 

希望說到這裡沒有讓你心生懼怕,但我見過的一些認真做研究的人的確投入了很多的時間和精力才有所成就。當然對於國內的研究生來說,我倒是覺得在碩士階段去 追求顯著的創新是不切實際的(個人的一管之見),其實把第一步做好已經不錯了。如果沒有做好第一步,打好基礎,就急於找些創新點,那麼這些所謂的創新點常 常是毫無意義的,寫出來的論文最終避免不了被扔到垃圾桶的命運(我以前寫的一些論文也是如此)。大家常常說國內的研究論文質量很差,很大程度上也是源於我 們現在的教育制度,要求研究生畢業前必須在SCI、EI或核心期刊上發表若干篇論文,重量而不重質,造就了現在的核心期刊完全變成了完成畢業任務的自留地。

話題扯遠了,回到你關心的問題-如何找創新點。必要的文獻閱讀是不可缺的,瞭解研究現狀和背景,才可能發現創新點。如果你想這個階段快一些的話,也有些捷徑,比如你可以到一些研究單位或學者的站點上,察看他們目前的研究動態,一般來說他們正在研究的內容常常是目前還未解決的,這樣你可以儘快找到創新點的主攻方向。

 

1資料探勘人員從事的工作內容

 

是不是開發資料探勘平臺、為別的企業單位量身製作DM、DW系統?除了這些還能有些什麼?

 

2讀博深造的必要性

 

現在只是無指導的自學狀態,能否在碩士畢業後勝任資料探勘方面的工作呢?考取名校的博士進一步深入學習的必要性大不大?

 

3自學時的大方向

 

文字、Web等,讀博時肯定就某種具體方向深入研究,現在是否應該也自己重點專注於一種方向,而不是僅泛泛的熟悉各個方面?

 

以下為blog主人的回覆:

 

1.資料探勘人員從事的工作和你所說的差不多,我認識的一些朋友大多在IT公司,為甲方實施DM、DW和BI等專案;還有一些是在甲方做分析人員,利用所掌握的資料探勘知識來解決一些業務問題。

 

2.就以上的工作內容來說,我覺得碩士已經足以勝任,當然最重要的不是學位,而是運用你學到的知識來解決問題的能力。如果希望在理論研究上進一步發展,讀博也不錯,但發展方向會有所不同。

 

3.在碩士階段,我覺得還是全面瞭解會更好一些。當然,因為資料探勘涉及的內容較多,還是應該在一些方面有所側重,比如那些得到廣泛應用的演算法及其應用上,包括決策樹、聚類、迴歸、神經網路等等。這樣即便你以後不去讀博,對找工作也會有所幫助。

 

請問:現在資料探勘開發主流平臺和程式語言。那些更有優勢呢?現在大都用什麼呢 謝謝

 

以下為blog主人的回覆:

 

現在一般應該是用Java開發的比較多,據我所知的,SAS Enterprise Miner客戶端是用Java開發,開源的資料探勘工具Weka也是用Java開發的。當然其後臺伺服器端的軟體有部分可能會是C開發的,主要是出於效能的考慮。

 

 

 

請教: 1 為甲方做的針對行業的資料探勘中,如果通過SAS等通用的軟體,如何體現行業不同、部門不同的特色要求?為他建立預測模型的過程中會對SAS的功能進行外掛式的擴充套件嗎,還是SAS本身已經足夠建立特定的模型?

 

也就是說所謂的量身定製,也就是使用同一個軟體建立不同的模型,開發過程中不涉及軟體的改造?

 

2 是否資料探勘人員不必是一個程式設計師?日常的工作已經很少涉及程式設計?

 

以下為blog主人的回覆:

 

1.SAS的Enterprise Miner是通用型的資料探勘軟體,所以要滿足客戶的特定分析需求,常常會採取兩種方法實現:一是做專案,通過專案團隊的開發和實施,來建立客戶所需的應用;另一種是採用SAS的行業解決方案(是SAS通過多年來對行業需求及解決方案的總結,形成的完整的solution),然後進行客戶化定製。

 

大多數情況下,不需要對SAS的功能進行擴充套件,而是用SAS的軟體就可以解決業務問題。所以我們通常做的專案不是軟體開發,而是專案實施。

 

2.如果單純從建立挖掘模型的角度來說,挖掘人員的確不必是程式設計師,只要應用合適的挖掘演算法,基於分析資料進行建模,並對模型進行調優就可以了。但實際上,挖掘人員並不只做這些,更多的時候是做資料準備和資料探索,其中就可能需要進行程式設計,當然這些程式通常用於資料處理、模型結果的釋出等等。

就我個人的經驗和了解,資料準備常常佔一個數據挖掘專案工作量的60%~70%左右。

 

 

我是中國海洋大學一名研一生,專業是資料庫。我想自己選擇一門方向,認真的學習,作為終身職業。譬如 java程式設計師、資料探勘人員、資料庫管理人員等等。我比較喜歡資料探勘,但是若干問題難以釋惑。

 

問題1:現在選擇資料探勘作為終身職業是明智之舉嗎?

 

現在網上對資料探勘的前景討論的很厲害,褒貶不一。但是至少可以確定的是資料探勘已經越來越被重視了。如你所言,大家看到的只是表面,許多成功的案例企業沒有對外公開。但不可否認的是,資料探勘在中國的應用有屠龍之技的嫌疑,廣大的企業還沒有重視起來。

 

總之,男怕投錯行,這個問題總是敲擊著我。如果我是您的弟弟,您會鼓勵我走資料探勘之路嗎?還是推薦其他的IT職業?

 

IDMer:

 

就我個人的觀點,資料探勘的發展還是前途很廣闊的。說白了,資料探勘就是一種分析問題的手段,問題一直會有,解決問題的手段也就一直有存在的必要。也許你 聽說過美國早期西部淘金熱的時候,富起來的不是淘金者,而是為淘金者提供工具、水的人,甚至因為礦工需要結實耐磨的衣服,以致於牛仔褲風行起來並經久不 衰。

 

至於你提到“屠龍之技”之說,只是很多人因為不熟悉資料探勘的內部技術而產生的莫測高深的感覺。其實,資料探勘本身並不是新技術,它融合了來自於統計學、資料庫和機器學習等多學科已經成熟的內容,冠上了一個看起來比較時髦的名字而已。

 

組成資料探勘的這三門支柱學科都已經發展了多年,也已得到了廣泛的應用。那麼我們也有理由相信它們的融合,能幫助我們解決更多的分析方面的問題。何況,業界還是有很多的成功案例,體現出資料探勘所帶了獨特優勢,而這些,是傳統的BI(報表、OLAP等)無法支援的。

 

以上說了不少資料探勘的好話,下面再看看硬幣的另一面。如果你是我的弟弟(呵呵,雖然我沒有,但也和很多年輕的師弟師妹聊過擇業的話題),我會建議你不做 IT業,哈哈,一句半真半假的玩笑。因為在IT這個行業看起來還是滿辛苦的,而且在很多專案中,常常需要重複一些沒什麼技術含量的任務,消耗的精力不少, 獲得的成就感卻不多。

 

Anyway,我的建議,其實也是我原來給自己的一句座右銘:認為對的就去做。找到自己的興趣所在,並且感覺也有發展,那就盡力去做好了。

 

問題2:如果我現在選擇了資料探勘,應該怎麼做?

 

您曾經在部落格上回復一位北郵同學,建議熟悉學習各種演算法;建立模型,創新思路改進演算法撰寫論文。

 

我當前的計劃是 學習各種演算法的原理;學習java語言;研究weka原始碼,深入瞭解幾種經典演算法的步驟;學習瞭解ETL,資料倉庫、OLAP等;通過使用的資料集建立挖掘模型;思考論文;有空的話 還得SPSS或其他一個流行軟體的使用方法。其中,我覺得難點是對資料集的整理形成挖掘流程的輸入。關注薇信工宗號:程式設計師交流互動平臺,回覆【大資料】可獲取大資料基礎視訊教程一套

 

其中,我也有若干疑惑:掌握一門資料庫是很重要的,但是沒有時間一一瞭解SQLServer、Oracle、DB2等,但是在求職時,又說不定單位要求會哪門資料庫!?我想就SQL Server單獨進行深入的學習,包括學習在SQL Server中資料倉庫的建立和資料探勘的應用,其他的也就不管了。不知我這個選一而棄其他的打算可取不可取?

在這裡我還是要推薦下我自己建的大資料學習交流裙:805127855, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴。
 

IDMer:

 

從你的計劃來看,還是對自己要掌握的知識和技能,劃出了一個範圍。看上去還不錯,我只是從個人的經驗出發,建議你不必苛求自己十八般武藝樣樣精通,很多方面只需基本瞭解,選擇幾個重點來練成自己的絕活。人的精力畢竟有限,目標越大就越難實現。

 

至於選擇那些作為重點,就需要在廣泛瞭解的基礎上,結合自己的興趣進行篩選了。

 

關於資料庫的掌握,我覺得熟悉一種產品已經足夠。SQL Server、Oracle、DB2都是關係資料庫,在學生階段把關係資料庫的基礎理論打牢,熟練運用SQL語句就可以了。這些主流資料庫之間的差異,不 是遵循的標準不同,而是產品的特性有別,以及在效能調優時的技巧。

 

問題3:如何使學習階段與行業應用靠攏?

 

有一位學長,建議我學技術的時候要和行業靠攏,否則,“沒有行業背景的技術會很飄”。我覺得他說的有道理,技術是相當寬泛的,你不可能面面俱到;而且,當 你實際工作後,也就專於一個行業,技術的需要面也就變窄了。這樣,有利於學習重點,不至於在學習時,面面俱到,沒有突出。

 

但是,在資料探勘方面,曾經請教過你,資料探勘人員的工作性質。一種是在甲方做分析人員,利用所掌握的資料探勘知識來解決一些業務問題。一種是在IT公司,為甲方實施DM、DW和BI等專案(前輩自己便屬於此類?)。

 

在這裡,我不太明白作為甲方,日常具體做些什麼?難道是類似於網管性質的?那樣不更傾向於資料庫管理人員?他們還算是專業的資料探勘人員嗎,怎麼覺得公司不大會安排這樣的職位呢?

 

我比較傾向於做乙方,那樣好像更專業似的。但是,乙方的話,都說資料探勘在金融、電信、銀行還是銷售等方面主要應用。難道這意味著要學習或瞭解金融電信的背景、CRM、經濟學、Excel……?

 

還有,您曾提到,畢業後也可以做研究工作,我覺得提供研究工作的崗位畢竟是少的。而且,那樣掙錢多嗎(流汗中)?

 

是否現在應該考慮以後進哪個(哪類)公司,現在根據它的要求來強化自己呢?

 

資料探勘交流討論(3,答Freshm 2008-12-9的留言)

博士你好: 從事資料探勘應用,要打好那些基礎,望結合您的經驗給予詳細指導,以及給一點應用於移動方面的實踐案例。

我的回覆:不好意思,我不是博士,請別叫我博士。非常高興跟你交流資料探勘的應用。資料探勘因為是個綜合性應用,涉及的專業知識很多(有資料倉庫、統計專 業、程式設計能力、展示展現技術、挖掘技能、所具體應用的相關業務能力),但是真正從資料探勘專案實踐的角度講,溝通能力和對挖掘的興趣愛好是最重要的,有了 愛好才可以願意鑽研,有了不錯的溝通能力,才可以正確理解業務問題,才能正確把業務問題轉化成挖掘問題,才可以在相關不同專業人才之間清楚表達你的意圖和 想法,取得他們的理解和支援。所以我認為溝通能力和興趣愛好是個人的資料探勘的核心競爭力,是很難學到的;而其他的相關專業知識誰都可以學,算不上個人發 展的核心競爭力。

除了最重要的溝通能力和興趣愛好外,在專業能力培養中,如果你一定要排個先後次序的話, 一方面看你職業興趣的側重點,另一方面對於資料探勘的應用來說,我覺得資料探勘技能可能是相對而言最重要的, 因為資料探勘作為一個典型的團隊作業,一個人不可能完成所有相關專業的工作,而其中資料探勘能力可能是挖掘實踐中專業能力的核心,當然相關業務的能力同樣 (甚至更)重要,比如做資料庫營銷時,你不但應該有好的挖掘技能,你更應該是個市場營銷專家。所以國內外面臨資料探勘複合型人才缺乏時,一致公認的好的解 決辦法是讓業務人員學習挖掘技能(這比讓挖掘技術人員學習業務技能更有效、更合理)。

說到這裡可能很多資料倉庫專家、程式設計師、統計師等等都要扔磚頭了,對不起,我沒有別的意思,你們的專業對於資料探勘都很重要,大家本來就是一個整體的,但 是作為單獨一個個體的人來說,精力有限,時間有限,不可能這些領域都能掌握,在這種情況下,選擇最重要的核心,我想應該是資料探勘技能和相關業務能力吧 (從另外的一個極端的例子,我們可以看, 比如一個迷你型的挖掘專案,一個懂得市場營銷和資料探勘技能的人應該可以勝任。這其中他雖然不懂資料倉庫,但是簡單的Excel就足以勝任高打6萬個樣本 的資料處理;他雖然不懂專業的展示展現技能,但是隻要他自己看的懂就行了,這就無需什麼展示展現;前面說過,統計技能是應該掌握的,這對一個人的迷你專案 很重要;他雖然不懂程式設計,但是專業挖掘工具和挖掘技能足夠讓他操練的;這樣在迷你專案中,一個懂得挖掘技能和市場營銷業務能力的人就可以圓滿完成了,甚至 在一個數據源中根據業務需求可以無窮無盡的挖掘不同的專案思路,試問就是這個迷你專案,單純的一 個數據倉庫專家、單純的一個程式設計師、單純的一個展示展現技師、甚至單純的一個挖掘技術專家,都是無法勝任的)。這從另一個方面也說明了為什麼溝通能力的重 要,這些個完全不同的專業領域,想要有效有機地整合在一起進行資料探勘專案實踐,你說沒有好的溝通能力行嗎?

資料探勘能力只能在專案實踐的熔爐中提升、昇華,所以跟著專案學挖掘是最有效的捷徑。國外學習挖掘的人都是一開始跟著老闆做專案,剛開始不懂不要緊,越不懂越知道應該學什麼,才能學得越快越有效果。我不知道國內的資料探勘學生是怎樣學的,但是從網上的一些論壇看,很多都是紙上談兵,這樣很浪費時間,很沒有效率。

另外現在國內關於資料探勘的概念都很混亂,很多BI只是侷限在報表的展示和簡單的統計分析,卻也號稱是資料探勘;另一方面,國內真正規模化實施資料探勘的 行業是屈指可數(銀行、保險公司、移動通訊),其他行業的應用就只能算是小規模的,比如很多大學都有些相關的挖掘課題、挖掘專案,但都比較分散,而且都是 處於摸索階段,但是我相信資料探勘在中國一定是好的前景,因為這是歷史發展的必然,呵呵。

講到移動方面的實踐案例,如果你是來自移動的話,你一定知道國內有家叫華院分析的公司(申明,我跟這家公司沒有任何關係,我只是站在資料探勘者的角度分析 過中國大多數的號稱資料探勘服務公司,覺得華院還不錯,比很多徒有虛名的大公司來得更實際),他們的業務現在已經覆蓋了絕大多數中國省級移動公司的分析挖 掘專案,你上網搜尋一下應該可以找到一些詳細的資料吧。我對華院分析印象最深的一點就是2002 年這個公司白手起家,自己不懂不要緊,一邊自學一邊開始拓展客戶,到現在在中國的移動通訊市場全面開花,的確佩服佩服呀。他們最開始都是用EXCEL處理 資料,用肉眼比較選擇比較不同的模型,你可以想象這其中的艱難吧。這個故事其實也告訴我們,資料探勘也是可以創造一些神奇的故事的,你說呢?

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

資料探勘從業人員工作分析

 

1.資料探勘從業人員的願景:

資料探勘就業的途徑從我看來有以下幾種,(注意:本文所說的資料探勘不包括資料倉庫或資料庫管理員的角色)。

A:做科研(在高校、科研單位以及大型企業,主要研究演算法、應用等)

B:做程式開發設計(在企業做資料探勘及其相關程式演算法的實現等)

C:資料分析師(在存在海量資料的企事業單位做諮詢、分析等)

2.資料探勘從業人員切入點:

根據上面的從業方向倒序並延伸來說說需要掌握的技能。

在這裡我還是要推薦下我自己建的大資料學習交流裙:805127855, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴。
 

C,資料分析師:需要有深厚的數理統計基礎,可以不知道人工智慧和計算機程式設計等相關技術,但是需要熟練使用主流的資料探勘(或統計分析)工具 。從這個方面切入資料探勘領域的話你需要學習《數理統計》、《概率論》、《統計學習基礎:資料探勘、推理與預測 》、《金融資料探勘》,《業務建模與資料探勘》、《資料探勘實踐 》等,當然也少不了你使用的工具的對應說明書了,如SPSS、SAS等廠商的《SAS資料探勘與分析》、《資料探勘Clementine應用實務 》、《EXCEL 2007資料探勘完全手冊》等,如果多看一些如《中文版 資料探勘原理》 等書籍那就更好了。

B,程式設計開發:主要是實現資料探勘現有的演算法和研發新的演算法以及根據實際需要結合核心演算法做一些程式開發實現工作。要想扮演好這個角色,你不但需要熟 悉至少一門程式語言如(C,C++,Java,Delphi等)和資料庫原理和操作,對資料探勘基礎課程有所瞭解,讀過《資料探勘概念與技術》(韓家煒 著)、《人工智慧及其應用》。有一點了解以後,如果對程式比較熟悉的話並且時間允許,可以尋找一些開源的資料探勘軟體研究分析,也可以參考如《資料探勘: 實用機器學習技術及Java實現》等一些教程。

關注薇信工宗號:程式設計師交流互動平臺,回覆【大資料】可獲取大資料基礎視訊教程一套

A.做科研:這裡的科研相對來說比較概括,屬於技術型的相對高階級別,也是B,C的歸宿,那麼相應的也就需要對B、C的必備基礎知識了。

可能之後不會續寫一篇《資料探勘進階》了,這邊大概說一下B和C的進一步要求:

B當前主要包括如下方向:企業資料探勘、Web資料探勘、空間資料探勘、多媒體資料探勘等等;

C當前主要應用於:電信CRM、金融、諮詢業等等;

在這裡我還是要推薦下我自己建的大資料學習交流裙:805127855, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴。