什麼是資料探勘?
資料探勘是在較大量的資料中尋找模式的過程,使用一系列跨領域的方法包括統計學、機器學習和資料庫。他是一個跨領域的學科,目的是透過一系列的方法,在資料庫中發掘有價值的資訊,轉化成可以理解的結構,提供未來決策使用。資料探勘不是一個單一的動作,而是一個系統性的「資料庫知識發現」的流程,包含原始資料分析、資料預處理、建模、推論、解釋、視覺化 ,資料探勘的實務工作是以半自動化、或自動化分析大規模的資料,以提取未知的、有價值的潛在資訊。
資料探勘的重要任務?
(1) 分類Classification
(2) 迴歸Regression
(3) 關聯規則學習和推薦系統 Association Rules and Recommendation Systems (4) 類聚分析 Clustering
(5) 異常檢測 Anomaly Detection
(6) 匯總 Summarization
(7) 資料縮減和變數縮減 Data Reduction and Dimension Reduction *
(8) 資料探索和視覺化 Data Exploration and Visualization *
(9) 線上分析處理 OLAP **
(10) 結構查詢語言 SQL **
資料探勘和機器學習的差別?
一開始上資料探勘的課時,發現學習的主題和機器學習的主題幾乎一模一樣,這兩個學科到底有什麼差別呢?機器學習是利用電腦的運算能力,應用各種統計模型和演算模型來做預測分析,包含監督學習預測類別或數值的目標變數,和非監督學習。上完兩門課程以後,我覺得兩者領域是互相高度重疊的,我會說機器學習比較重視「建構和應用數學模型」而資料探勘比較著重「獲取資訊的方式和流程」。機器學習的課程要求「實際操作統計程式語言R來做資料處理和跑模型」、「了解和應用統計模型和演算模型」、「如何解讀統計模型的表現」,資料探勘除了同樣強調以上的重點以外,他的視野比較寬廣,不只探討使用什麼演算模型來做資料分析、如何解讀模型表現,更探討了實務上的需求和操作流程,像是fraud detection除了跑模型以外,要重複取樣加重fraud的權重,避免資料比例失衡和解讀困難;或是Leida Chen第一堂課提到如何做Response Modeling,使用簡單的table和統計概念判斷潛在客戶的可能性,這個例子完全沒有跑高深莫測的模型,卻一樣可以有效的解決問題。另外一個重要的概念就是實務上「統計學的判斷」在模型的解讀上可能不管用,因為p value是一個很模糊的判斷指引,應該要依照商業需求選擇決策的cutoff。還提到「預測比推論更重要」等等實務的觀念。這些都是機器學習沒有探討到的。因為資料探勘的目的是從資料中取得有價值的資訊,所以在所有資料處理和分析的過程中,只要能夠有效轉化資料為資訊的方法都可以討論。最後引用一個blogger Xavier Amatriain認為資料探勘和機器學習的區別:It is clear that machine learning can be used for data mining. However, data mining can use other techniques besides or on top of machine learning.
資料探勘的重要性?
隨著電腦科技的發展,在現在這個資訊爆炸的時代,如何有效率的處理資料並獲得有用的資訊和知識是很重要的事情。資料探勘可以幫助公司「篩選資料中混亂和重複的雜訊」、「了解什麼是重要的並利用這些資訊來預測結果」和「加速決策」。
資料探勘的應用?
- 詐欺的偵測
- 供應鏈的優化
- 新客戶的開發
資料探勘的方法?
根據分析目的的不同,資料的狀態和特性,背後的理論假設(例如經濟的供需理論),選取適合的分析方法。在選擇方法前可以想想看以下的因素:
- 資料的大小?
- 資料中存在什麼樣的模式?
- 資料中是否有一些潛在的假設?
- 資料有多少的雜訊?
- 分析的目標是什麼?
不同的統計模型和演算模型會給出很不同的結果,預測的表現也會不同,所以需要資料分析師、資料科學家根據不同的問題和目標選取最有用的方法。以下是常見的資料探勘的方法:
資料探勘的流程?
- 了解目的
- 得到資料
- 探索、清理、預處理資料
- 變數縮減
- 決定任務(翻譯實際問題成分析的問題)
- 資料分隔(若使用監督學習)
- 選擇方法
- 跑模型
- 解釋和比較模型的結果
- 使用模型
IBM的CRISP-DM流程和SAS的SEMMA流程也有相似的步驟。
資料探勘的自動化?
在實務應用上,監督式學習的目的不是一次性的、靜態的分析,而是透過我們建出來的模型,應用在大量相同的、持續流通的資料上,以達成大量分析、預測的目的。所以我們現在所學的分析都在prototype的階段,探索和決定問題、測試不同模型,這個階段結束後,我們想要利用最終選出來的模型達成自動化的分析。
例如說:美國的國家稅務局IRS每年會收到好幾億份的納稅申報,稅務局不會想要每收到一筆申報,就拉出該資料到excel sheet上或任何其他不屬於他的資料庫的環境,進行分析和預測此申報是否為詐欺。相反的,稅務局會希望可以把分析納入在一般的稅務申報的環境和過程中。要怎麼做呢?稅務局會把選定的演算模型會直接建構在電腦運算的環境裡,當新的申報送至IRS系統中,演算模型會預測此申報的類別是否為詐欺,結果會依照稅務局的business rule判定接下來一步是什麼,若判定「不是詐欺」,系統會導入其他的正常流程,若判定「是詐欺」,系統會警告檢視的人要做額外的查核。像這樣子的退稅流程,從資料輸入至系統、通過演算模型分析、再回到使用者的手上,稱作為Data Pipeline。在系統內的不同物件會透過Application Programming Interfaces (APIs)來傳遞資料和溝通,一個用來執行演算模型的API會建構他必要的元素:像是預測的目標變數、執行順序、資料結構等等,也會建構能夠溝通預測結果的元素,使整體的運作符合API設定的規則。
需要注意的是,即使建構了演算模型、納入正常的系統環境中執行,到了所謂的deployment的階段,資料分析師和資料科學家的任務還沒有完成,因為演算模型的運作是動態的,預測模型的有效期通常是很短的,一個顧問曾經說過他們很少發現一個預測模型可以有效運作超過一年,因此演算模型還是要週期性的檢查和重新評估,如果模型表現變差的話,就要回到prototype的階段尋找更適合的模型。
備註:
*對於預處理是否包含在資料探勘的範疇,維基百科說資料收集、資料預處理、結果解釋和報告撰寫都不屬於資料探勘的步驟,他們是「資料庫知識發現」的過程;但Data Mining for Business Analytics with R課本提到資料預處理和資料探索視覺化是Data mining的重要概念,將他們包含在整個資料探勘的流程中。上課的過程中,教授也是將資料預處理、資料探索的過程包含在資料探勘的流程中,也有提到PCA等等方法。個人認為,資料探勘的概念應該是一個系統性的解決方法,從資料取得、前處理、分析、解釋等等使用各種方法得到有價值的資訊的過程,所以我會傾向包含這些在資料探勘的範疇中,否則資料探勘就和機器學習沒有太大的差別了。
**對於從資料庫取得資料的方式是否包含在資料探勘的範疇,課本有提到有時會被當作資料探勘的方法,但僅僅是取得資料的方法,不牽涉任何統計模型或自動演算。