一、什麼是數據挖掘
數據挖掘(Data Mining),又稱為數據庫中的知識發現(Knowledge Discovery in Database, KDD),就是從大量數據中獲取有效的、新穎的、潛在有用的、最終可理解的模式的非平凡過程,簡單的說,數據挖掘就是從大量數據中提取或“挖掘”知識。
二、數據挖掘相關的10個問題
NO.1 Data Mining和統計分析有什麼不同?
硬要去區分Data Mining和Statistics的差異其實是沒有太大意義的。一般將之定義為Data Mining技術的CART、CHAID或模糊計算等等理論方法,也都是由統計學者根據統計理論所發展衍生,換另一個角度看,Data Mining有相當大的比重是由高等統計學中的多變量分析所支撐。在我看來統計分析應是數據挖掘的一脈祖先,因為數據挖掘的許多基本思想和方法都來源於傳統統計理論。最典型的就是時間序列分析,你可以在這兩個領域裡找到大量時序分析的論述,並且數據挖掘中時序分析的方法與統計裡的時序分析方法相同,比如一元迴歸等。但是,統計分析中的時序分析並不僅限於此,還有其他一些相關的方法。另外,數據挖掘裡的決策樹方法等人工智能方法在傳統統計理論中是不存在的。最後可以得出結論,那就是數據挖掘的一些基本方法來源於統計分析,針對性更強(比如挖掘中的時序分析針對趨勢預測),通過與人工智能等其他技術相結合,產生更靈活有效的分析方式。
但是為什麼Data Mining的出現會引發各領域的廣泛注意呢?主要原因在相較於傳統統計分析而言,Data Mining有下列幾項特性:
1.處理大量實際數據更強勢,且無須太專業的統計背景去使用Data Mining的工具;
2.數據分析趨勢為從大型數據庫抓取所需數據並使用專屬計算機分析軟件,Data Mining的工具更符合企業需求;
3. 純就理論的基礎點來看,Data Mining和統計分析有應用上的差別,畢竟Data Mining目的是方便企業終端用戶使用而非給統計學家檢測用的。
NO.2 Data Warehousing和 Data Mining的關係為何?
若將Data Warehousing(數據倉庫)比喻作礦坑,Data Mining就是深入礦坑採礦的工作。畢竟Data Mining不是一種無中生有的魔術,也不是點石成金的鍊金術,若沒有夠豐富完整的數據,是很難期待Data Mining能挖掘出什麼有意義的信息的。
要將龐大的數據轉換成為有用的信息,必須先有效率地收集信息。隨著科技的進步,功能完善的數據庫系統就成了最好的收集數據的工具。數據倉庫,簡單地說,就是蒐集來自其它系統的有用數據,存放在一整合的儲存區內。所以其實就是一個經過處理整合,且容量特別大的關係型數據庫,用以儲存決策支持系統(Design Support System)所需的數據,供決策支持或數據分析使用。從信息技術的角度來看,數據倉庫的目標是在組織中,在正確的時間,將正確的數據交給正確的人。
許多人對於Data Warehousing和Data Mining時常混淆,不知如何分辨。其實,數據倉庫是數據庫技術的一個新主題,利用計算機系統幫助我們操作、計算和思考,讓作業方式改變,決策方式也跟著改變。
數據倉庫本身是一個非常大的數據庫,它儲存著由組織作業數據庫中整合而來的數據,特別是指事務處理系統OLTP(On-Line Transactional Processing)所得來的數據。將這些整合過的數據置放於數據昂哭中,而公司的決策者則利用這些數據作決策;但是,這個轉換及整合數據的過程,是建立一個數據倉庫最大的挑戰。因為將作業中的數據轉換成有用的的策略性信息是整個數據倉庫的重點。綜上所述,數據倉庫應該具有這些數據:整合性數據(integrated data)、詳細和彙總性的數據(detailed and summarized data)、歷史數據、解釋數據的數據。從數據倉庫挖掘出對決策有用的信息與知識,是建立數據倉庫與使用Data Mining的最大目的,兩者的本質與過程是兩回事。換句話說,數據倉庫應先行建立完成,Data mining才能有效率的進行,因為數據倉庫本身所含數據是乾淨(不會有錯誤的數據參雜其中)、完備,且經過整合的。因此兩者關係或許可解讀為Data Mining是從巨大數據倉庫中找出有用信息的一種過程與技術。
NO.3 OLAP能不能代替 Data Mining?
所謂OLAP(Online Analytical Process)意指由數據庫所連結出來的在線分析處理程序。有些人會說:「我已經有OLAP的工具了,所以我不需要Data Mining。」事實上兩者間是截然不同的,主要差異在於Data Mining用在產生假設,OLAP則用於查證假設。簡單來說,OLAP是由使用者所主導,使用者先有一些假設,然後利用OLAP來查證假設是否成立;而Data Mining則是用來幫助使用者產生假設。所以在使用OLAP或其它Query的工具時,使用者是自己在做探索(Exploration),但Data Mining是用工具在幫助做探索。
舉個例子來看,一市場分析師在為超市規劃貨品架櫃擺設時,可能會先假設嬰兒尿布和嬰兒奶粉會是常被一起購買的產品,接著便可利用OLAP的工具去驗證此假設是否為真,又成立的證據有多明顯;但Data Mining則不然,執行Data Mining的人將龐大的結帳數據整理後,並不需要假設或期待可能的結果,透過Mining技術可找出存在於數據中的潛在規則,於是我們可能得到例如尿布和啤酒常被同時購買的意料外之發現,這是OLAP所做不到的。
Data Mining常能挖掘出超越歸納範圍的關係,但OLAP僅能利用人工查詢及可視化的報表來確認某些關係,是以Data Mining此種自動找出甚至不會被懷疑過的數據模型與關係的特性,事實上已超越了我們經驗、教育、想象力的限制,OLAP可以和Data Mining互補,但這項特性是Data Mining無法被OLAP取代的。
NO.4完整的Data Mining包含哪些步驟?
以下提供一個Data Mining的進行步驟以為參考:
1. 理解業務與理解數據;
2. 獲取相關技術與知識;
3. 整合與查詢數據;
4. 去除錯誤或不一致及不完整的數據;
5. 由數據選取樣本先行試驗;
6. 建立數據模型
7. 實際Data Mining的分析工作;
8. 測試與檢驗;
9. 找出假設並提出解釋;
10. 持續應用於企業流程中。
由上述步驟可看出,Data Mining牽涉了大量的準備工作與規劃過程,事實上許多專家皆認為整套Data Mining的進行有80﹪的時間精力是花費在數據前置作業階段,其中包含數據的淨化與格式轉換甚或表格的連結。由此可知Data Mining只是信息挖掘過程中的一個步驟而已,在進行此步驟前還有許多的工作要先完成。
NO.5 Data Mining運用了哪些理論與技術?
Data Mining是近年來數據庫應用技術中相當熱門的議題,看似神奇、聽來時髦,實際上卻也不是什麼新東西,因其所用之諸如預測模型、數據分割,連結分析(Link Analysis)、偏差偵測(Deviation Detection)等,美國早在二次世界大戰前就已應用運用在人口普查及軍事等方面。
隨著信息科技超乎想象的進展,許多新的計算機分析工具問世,例如關係型數據庫、模糊計算理論、基因算法則以及類神經網絡等,使得從數據中發掘寶藏成為一種系統性且可實行的程序。
一般而言,Data Mining的理論技術可分為傳統技術與改良技術兩支。
傳統技術以統計分析為代表,統計學內所含序列統計、概率論、迴歸分析、類別數據分析等都屬於傳統數據挖掘技術,尤其 Data Mining對象多為變量繁多且樣本數龐大的數據,是以高等統計學裡所含括之多變量分析中用來精簡變量的因素分析(Factor Analysis)、用來分類的判別分析(Discriminant Analysis),以及用來區隔群體的分群分析(Cluster Analysis)等,在Data Mining過程中特別常用。
在改良技術方面,應用較普遍的有決策樹理論(Decision Trees)、類神經網絡(Neural Network)以及規則歸納法(Rules Induction)等。決策樹是一種用樹枝狀展現數據受各變量的影響情形之預測模型,根據對目標變量產生之效應的不同而建構分類的規則,一般多運用在對客戶數據的分析上,例如針對有回函與未回含的郵寄對象找出影響其分類結果的變量組合,常用分類方法為CART(Classification and Regression Trees)及CHAID(Chi-Square Automatic Interaction Detector)兩種。
類神經網絡是一種仿真人腦思考結構的數據分析模式,由輸入之變量與數值中自我學習並根據學習經驗所得之知識不斷調整參數以期建構數據的型樣(patterns)。類神經網絡為非線性的設計,與傳統迴歸分析相比,好處是在進行分析時無須限定模式,特別當數據變量間存有交互效應時可自動偵測出;缺點則在於其分析過程為一黑盒子,故常無法以可讀之模型格式展現,每階段的加權與轉換亦不明確,是故類神經網絡多利用於數據屬於高度非線性且帶有相當程度的變量交感效應時。
規則歸納法是知識發掘的領域中最常用的格式,這是一種由一連串的「如果…/則…(If / Then)」之邏輯規則對數據進行細分的技術,在實際運用時如何界定規則為有效是最大的問題,通常需先將數據中發生數太少的項目先剔除,以避免產生無意義的邏輯規則。
NO.6 Data Mining包含哪些主要功能?
Data Mining實際應用功能可分為三大類六分項來說明:Classification和Clustering屬於分類區隔類;Regression和Time-series屬於推算預測類;Association和Sequence則屬於序列規則類。
Classification是根據一些變量的數值做計算,再依照結果作分類。(計算的結果最後會被分類為幾個少數的離散數值,例如將一組數據分為 "可能會響應"或是 "可能不會響應"兩類)。Classification常被用來處理如前所述之郵寄對象篩選的問題。我們會用一些根據歷史經驗已經分類好的數據來研究它們的特徵,然後再根據這些特徵對其他未經分類或是新的數據做預測。這些我們用來尋找特徵的已分類數據可能是來自我們的現有的客戶數據,或是將一個完整數據庫做部份取樣,再經由實際的運作來測試;譬如利用一個大型郵寄對象數據庫的部份取樣來建立一個Classification Model,再利用這個Model來對數據庫的其它數據或是新的數據作分類預測。
Clustering用在將數據分群,其目的在於將群間的差異找出來,同時也將群內成員的相似性找出來。Clustering與Classification不同的是,在分析前並不知道會以何種方式或根據來分類。所以必須要配合專業領域知識來解讀這些分群的意義。
Regression是使用一系列的現有數值來預測一個連續數值的可能值。若將範圍擴大亦可利用Logistic Regression來預測類別變量,特別在廣泛運用現代分析技術如類神經網絡或決策樹理論等分析工具,推估預測的模式已不在止於傳統線性的侷限,在預測的功能上大大增加了選擇工具的彈性與應用範圍的廣度。
Time-Series Forecasting與Regression功能類似,只是它是用現有的數值來預測未來的數值。兩者最大差異在於Time-Series所分析的數值都與時間有關。Time-Series Forecasting的工具可以處理有關時間的一些特性,譬如時間的週期性、階層性、季節性以及其它的一些特別因素(如過去與未來的關連性)。
Association是要找出在某一事件或是數據中會同時出現的東西。舉例而言,如果A是某一事件的一種選擇,則B也出現在該事件中的機率有多少。(例如:如果顧客買了火腿和柳橙汁,那麼這個顧客同時也會買牛奶的機率是85%。)
Sequence Discovery與Association關係很密切,所不同的是Sequence Discovery中事件的相關是以時間因素來作區隔(例如:如果A股票在某一天上漲12%,而且當天股市加權指數下降,則B股票在兩天之內上漲的機率是 68%)。
NO.7 Data Mining在各領域的應用情形為何?
Data Mining在各領域的應用非常廣泛,只要該產業擁有具分析價值與需求的數據倉儲或數據庫,皆可利用Mining工具進行有目的的挖掘分析。一般較常見的應用案例多發生在零售業、直效行銷界、製造業、財務金融保險、通訊業以及醫療服務等。
於銷售數據中發掘顧客的消費習性,並可藉由交易紀錄找出顧客偏好的產品組合,其它包括找出流失顧客的特徵與推出新產品的時機點等等都是零售業常見的實例;直效行銷強調的分眾概念與數據庫行銷方式在導入Data Mining的技術後,使直效行銷的發展性更為強大,例如利用Data Mining分析顧客群之消費行為與交易紀錄,結合基本數據,並依其對品牌價值等級的高低來區隔顧客,進而達到差異化行銷的目的;製造業對Data Mining的需求多運用在品質控管方面,由製造過程中找出影響產品品質最重要的因素,以期提高作業流程的效率。
近來電話公司、信用卡公司、保險公司以及股票交易商對於詐欺行為的偵測(Fraud Detection)都很有興趣,這些行業每年因為詐欺行為而造成的損失都非常可觀,Data Mining可以從一些信用不良的客戶數據中找出相似特徵並預測可能的詐欺交易,達到減少損失的目的。財務金融業可以利用 Data Mining來分析市場動向,並預測個別公司的營運以及股價走向。Data Mining的另一個獨特的用法是在醫療業,用來預測手術、用藥、診斷、或是流程控制的效率。
NO.8 Web Mining和Data Mining有什麼不同?
如果將Web視為CRM的一個新的Channel,則Web Mining便可單純看做Data Mining應用在網絡數據的泛稱。
該如何測量一個網站是否成功?哪些內容、優惠、廣告是人氣最旺的?主要訪客是哪些人?什麼原因吸引他們前來?如何從堆積如山之大量由網絡所得數據中找出讓網站運作更有效率的操作因素?以上種種皆屬Web Mining分析之範疇。Web Mining不僅只限於一般較為人所知的log file分析,除了計算網頁瀏覽率以及訪客人次外,舉凡網絡上的零售、財務服務、通訊服務、政府機關、醫療諮詢、遠距教學等等,只要由網絡連結出的數據庫夠大夠完整,所有Off-Line可進行的分析,Web Mining都可以做,甚或更可整合Off-Line及On-Line的數據庫,實施更大規模的模型預測與推估,畢竟憑藉網際網絡的便利性與滲透力再配合網絡行為的可追蹤性與高互動特質,一對一行銷的理念是最有機會在網絡世界裡完全落實的。
整體而言,Web Mining具有以下特性:1.數據收集容易且不引人注意,所謂凡走過必留下痕跡,當訪客進入網站後的一切瀏覽行為與歷程都是可以立即被紀錄的;2.以交互式個人化服務為終極目標,除了因應不同訪客呈現專屬設計的網頁之外,不同的訪客也會有不同的服務;3.可整合外部來源數據讓分析功能發揮地更深更廣,除了log file、cookies、會員填表數據、線上調查數據、線上交易數據等由網絡直接取得的資源外,結合實體世界累積時間更久、範圍更廣的資源,將使分析的結果更準確也更深入。
利用Data Mining技術建立更深入的訪客數據剖析,並賴以架構精準的預測模式,以期呈現真正智能型個人化的網絡服務,是Web Mining努力的方向。
NO.9 Data Mining在 CRM中扮演的角色為何?
CRM(Customer Relationship Management)是近來引起熱烈討論與高度關切的議題,尤其在直效行銷的崛起與網絡的快速發展帶動下,跟不上CRM的腳步如同跟不上時代。事實上CRM並不算新發明,奧美直效行銷推動十數年的CO(Customer Ownership)就是現在大家談的CRM—客戶關係管理。
Data Mining應用在CRM的主要方式可對應在Gap Analysis之三個部分:
針對Acquisition Gap,可利用Customer Profiling找出客戶的一些共同的特徵,希望能藉此深入瞭解客戶,藉由Cluster Analysis對客戶進行分群后再透過Pattern Analysis預測哪些人可能成為我們的客戶,以幫助行銷人員找到正確的行銷對象,進而降低成本,也提高行銷的成功率。
針對Sales Gap,可利用Basket Analysis幫助瞭解客戶的產品消費模式,找出哪些產品客戶最容易一起購買,或是利用Sequence Discovery預測客戶在買了某一樣產品之後,在多久之內會買另一樣產品等等。利用 Data Mining可以更有效的決定產品組合、產品推薦、進貨量或庫存量,甚或是在店裡要如何擺設貨品等,同時也可以用來評估促銷活動的成效。
針對Retention Gap,可以由原客戶後來卻轉成競爭對手的客戶群中,分析其特徵,再根據分析結果到現有客戶數據中找出可能轉向的客戶,然後設計一些方法預防客戶流失;更有系統的做法是藉由Neural Network根據客戶的消費行為與交易紀錄對客戶忠誠度進行Scoring的排序,如此則可區隔流失率的等級進而配合不同的策略。
CRM不是設一個(080)客服專線就算了,更不僅只是把一堆客戶基本數據輸入計算機就夠,完整的CRM運作機制在相關的硬軟件系統能健全的支持之前,有太多的數據準備工作與分析需要推動。企業透過Data Mining可以分別針對策略、目標定位、操作效能與測量評估等四個切面之相關問題,有效率地從市場與顧客所蒐集累積之大量數據中挖掘出對消費者而言最關鍵、最重要的答案,並賴以建立真正由客戶需求點出發的客戶關係管理。
NO.10目前業界有哪些常用的Data Mining分析工具?
Data Mining工具市場大致可分為三類:
1. 一般分析目的用的軟件包
SAS Enterprise Miner
IBM Intelligent Miner
SPSS Clementine
Unica PRW
SGI MineSet
Oracle Darwin
Angoss KnowledgeSeeker
2. 針對特定功能或產業而研發的軟件
KD1(針對零售業)
Options & Choices(針對保險業)
HNC(針對信用卡詐欺或呆帳偵測)
Unica Model 1(針對行銷業)
3. 整合DSS(Decision Support Systems)/OLAP/Data Mining的大型分析系統
Cognos Scenario and Business Objects
以上就是我整理的一些數據倉庫、OLAP和 數據挖掘、統計分析的關係和區別分析,關注我,每日為你分享更多大數據的乾貨。
閱讀更多 Python工程師 的文章