數據挖掘是利用業務知識從數據中發現和解釋知識(或稱為模式)的過程,這種知識是以自然或者人工形式創造的新知識。
當前的數據挖掘形式,是在20世紀90年代實踐領域誕生的,是在集成數據挖掘算法平臺發展的支撐下適合商業分析的一種形式。也許是因為數據挖掘源于 實踐而非理論,在其過程的理解上不太引人注意。20世紀90年代晚期發展的CRISP-DM,逐漸成為數據挖掘過程的一種標準化過程,被越來越多的數據挖 掘實踐者成功運用和遵循。
雖然CRISP-DM能夠指導如何實施數據挖掘,但是它不能解釋數據挖掘是什么或者為什么適合這樣做。在本文中我將闡述我提出數據挖掘的九種準則或“定律”(其中大多數為實踐者所熟知)以及另外其它一些熟知的解釋。開始從理論上(不僅僅是描述上)來解釋數據挖掘過程。
我的目的不是評論CRISP-DM,但CRISP-DM的許多概念對于理解數據挖掘是至關重要的,本文也將依賴于CRISP-DM的常見術語。CRISP-DM僅僅是論述這個過程的開始。
第一,目標律:業務目標是所有數據解決方案的源頭。
它定義了數據挖掘的主題:數據挖掘關注解決業務業問題和實現業務目標。數據挖掘主要不是一種技術,而是一個過程,業務目標是它的的核心。 沒有業務目標,沒有數據挖掘(不管這種表述是否清楚)。因此這個準則也可以說成:數據挖掘是業務過程。
第二,知識律:業務知識是數據挖掘過程每一步的核心。
這里定義了數據挖掘過程的一個關鍵特征。CRISP-DM的一種樸素的解讀是業務知識僅僅作用于數據挖掘過程開始的目標的定義與最后的結果的實施,這將錯過數據挖掘過程的一個關鍵屬性,即業務知識是每一步的核心。
為了方便理解,我使用CRISP-DM階段來說明:
商業理解必須基于業務知識,所以數據挖掘目標必須是業務目標的映射(這種映射也基于數據知識和數據挖掘知識);數據理解使用業務知識理解與業務問題相關的數據,以及它們是如何相關的;數據預處理就是利用業務知識來塑造數據,使得業務問題可以被提出和解答(更詳盡的第三條—準備律);建模是使用數據挖掘算法創建預測模型,同時解釋模型和業務目標的特點,也就是說理解它們之間的業務相關性;評估是模型對理解業務的影響;實施是將數據挖掘結果作用于業務過程;總之,沒有業務知識,數據挖掘過程的每一步都是無效的,也沒有“純粹的技術”步驟。 業務知識指導過程產生有益的結果,并使得那些有益的結果得到認可。數據挖掘是一個反復的過程,業務知識是它的核心,驅動著結果的持續改善。
這背后的原因可以用“鴻溝的表現”(chasm of representation)來解釋(Alan Montgomery在20世紀90年代對數據挖掘提出的一個觀點)。Montgomery指出數據挖掘目標涉及到現實的業務,然而數據僅能表示現實的一 部分;數據和現實世界是有差距(或“鴻溝”)的。在數據挖掘過程中,業務知識來彌補這一差距,在數據中無論發現什么,只有使用業務知識解釋才能顯示其重要 性,數據中的任何遺漏必須通過業務知識彌補。只有業務知識才能彌補這種缺失,這是業務知識為什么是數據挖掘過程每一步驟的核心的原因。
CRISP-DM Diagram
第三,準備律:數據預處理比數據挖掘其他任何一個過程都重要。
這是數據挖掘著名的格言,數據挖掘項目中最費力的事是數據獲取和預處理。非正式估計,其占用項目的時間為50%-80%。最簡單的解釋可以概括為 “數據是困難的”,經常采用自動化減輕這個“問題”的數據獲取、數據清理、數據轉換等數據預處理各部分的工作量。雖然自動化技術是有益的,支持者相信這項 技術可以減少數據預處理過程中的大量的工作量,但這也是誤解數據預處理在數據挖掘過程中是必須的原因。
數據預處理的目的是把數據挖掘問題轉化為格式化的數據,使得分析技術(如數據挖掘算法)更容易利用它。數據任何形式的變化(包括清理、最大最小值轉 換、增長等)意味著問題空間的變化,因此這種分析必須是探索性的。 這是數據預處理重要的原因,并且在數據挖掘過程中占有如此大的工作量,這樣數據挖掘者 可以從容地操縱問題空間,使得容易找到適合分析他們的方法。
有兩種方法“塑造”這個問題空間。第一種方法是將數據轉化為可以分析的完全格式化的數據,比如,大多數數據挖掘算法需要單一表格形式的數據,一個記 錄就是一個樣例。數據挖掘者都知道什么樣的算法需要什么樣的數據形式,因此可以將數據轉化為一個合適的格式。第二種方法是使得數據能夠含有業務問題的更多 的信息,例如,某些領域的一些數據挖掘問題,數據挖掘者可以通過業務知識和數據知識知道這些。 通過這些領域的知識,數據挖掘者通過操縱問題空間可能更容 易找到一個合適的技術解決方案。
因此,通過業務知識、數據知識、數據挖掘知識從根本上使得數據預處理更加得心應手。 數據預處理的這些方面并不能通過簡單的自動化實現。
這個定律也解釋了一個有疑義的現象,也就是雖然經過數據獲取、清理、融合等方式創建一個數據倉庫,但是數據預處理仍然是必不可少的,仍然占有數據挖 掘過程一半以上的工作量。此外,就像CRISP-DM展示的那樣,即使經過了主要的數據預處理階段,在創建一個有用的模型的反復過程中,進一步的數據預處 理的必要的。
第四,試驗律(NFL律:No Free Lunch):對于數據挖掘者來說,天下沒有免費的午餐,一個正確的模型只有通過試驗(experiment)才能被發現。
機器學習有一個原則:如果我們充分了解一個問題空間(problem space),我們可以選擇或設計一個找到最優方案的最有效的算法。一個卓越算法的參數依賴于數據挖掘問題空間一組特定的屬性集,這些屬性可以通過分析發 現或者算法創建。但是,這種觀點來自于一個錯誤的思想,在數據挖掘過程中數據挖掘者將問題公式化,然后利用算法找到解決方法。事實上,數據挖掘者將問題公 式化和尋找解決方法是同時進行的—–算法僅僅是幫助數據挖掘者的一個工具。
有五種因素說明試驗對于尋找數據挖掘解決方案是必要的:
數據挖掘項目的業務目標定義了興趣范圍(定義域),數據挖掘目標反映了這一點;與業務目標相關的數據及其相應的數據挖掘目標是在這個定義域上的數據挖掘過程產生的;這些過程受規則限制,而這些過程產生的數據反映了這些規則;在這些過程中,數據挖掘的目的是通過模式發現技術(數據挖掘算法)和可以解釋這個算法結果的業務知識相結合的方法來揭示這個定義域上的規則;數據挖掘需要在這個域上生成相關數據,這些數據含有的模式不可避免地受到這些規則的限制。在這里強調一下最后一點,在數據挖掘中改變業務目標,CRISP-DM有所暗示,但經常不易被覺察到。廣為所知的CRISP-DM過程不是下一個步 驟僅接著上一個步驟的“瀑布”式的過程。事實上,在項目中的任何地方都可以進行任何CRISP-DM步驟,同樣商業理解也可以存在于任何一個步驟。業務目 標不是簡單地在開始就給定,它貫穿于整個過程。這也許可以解釋一些數據挖掘者在沒有清晰的業務目標的情況下開始項目,他們知道業務目標也是數據挖掘的一個 結果,不是靜態地給定。
Wolpert的“沒有免費的午餐”理論已經應用于機器學習領域,無偏的狀態好于(如一個具體的算法)任何其他可能的問題(數據集)出現的平均狀 態。這是因為,如果我們考慮所有可能的問題,他們的解決方法是均勻分布的,以至于一個算法(或偏倚)對一個子集是有利的,而對另一個子集是不利的。這與數 據挖掘者所知的具有驚人的相似性,沒有一個算法適合每一個問題。但是經過數據挖掘處理的問題或數據集絕不是隨機的,也不是所有可能問題的均勻分布,他們代 表的是一個有偏差的樣本,那么為什么要應用NFL的結論?答案涉及到上面提到的因素:問題空間初始是未知的,多重問題空間可能和每一個數據挖掘目標相關, 問題空間可能被數據預處理所操縱,模型不能通過技術手段評估,業務問題本身可能會變化。由于這些原因,數據挖掘問題空間在數據挖掘過程中展開,并且在這個 過程中是不斷變化的,以至于在有條件的約束下,用算法模擬一個隨機選擇的數據集是有效的。 對于數據挖掘者來說:沒有免費的午餐。
這大體上描述了數據挖掘過程。但是,在有條件限制某些情況下,比如業務目標是穩定的,數據和其預處理是穩定的,一個可接受的算法或算法組合可以解決 這個問題。在這些情況下,一般的數據挖掘過程中的步驟將會減少。 但是,如果這種情況穩定是持續的,數據挖掘者的午餐是免費的,或者至少相對便宜的。像這 樣的穩定性是臨時的,因為對數據的業務理解(第二律)和對問題的理解(第九律)都會變化的。
第五,模式律:數據中總含有模式。
這條規律最早由David Watkins提出。 我們可能預料到一些數據挖掘項目會失敗,因為解決業務問題的模式并不存在于數據中,但是這與數據挖掘者的實踐經驗并不相關。
前文的闡述已經提到,這是因為:在一個與業務相關的數據集中總會發現一些有趣的東西,以至于即使一些期望的模式不能被發 現,但其他的一些有用的東西可能會被發現(這與數據挖掘者的實踐經驗是相關的);除非業務專家期望的模式存在,否則數據挖掘項目不會進行,這不應感到奇 怪,因為業務專家通常是對的。
然而,Watkins提出一個更簡單更直接的觀點:“數據中總含有模式。”這與數據挖掘者的經驗比前面的闡述更一致。這個觀點后來經過Watkins修正,基于客戶關系的數據挖掘項目,總是存在著這樣的模式即客戶未來的行為總是和先前的行為相關,顯然這些模式是有利可圖的(Watkins的客戶關系管理定律)。 但是,數據挖掘者的經驗不僅僅局限于客戶關系管理問題,任何數據挖掘問題都會存在模式(Watkins的通用律)。
Watkins的通用律解釋如下:
數據挖掘項目的業務目標定義了興趣范圍(定義域),數據挖掘目標反映了這一點;與業務目標相關的數據及其相應的數據挖掘目標是在這個定義域上的數據挖掘過程產生的;這些過程受規則限制,而這些過程產生的數據反映了這些規則;在這些過程中,數據挖掘的目的是通過模式發現技術(數據挖掘算法)和可以解釋這個算法結果的業務知識相結合的方法來揭示這個定義域上的規則;數據挖掘需要在這個域上生成相關數據,這些數據含有的模式不可避免地受到這些規則的限制。總結這一觀點:數據中總存在模式,因為在這過程中不可避免產生數據這樣的副產品。為了發掘模式,過程從(你已經知道它)—–業務知識開始。
利用業務知識發現模式也是一個反復的過程;這些模式也對業務知識有貢獻,同時業務知識是解釋模式的主要因素。在這種反復的過程中,數據挖掘算法簡單地連接了業務知識和隱藏的模式。
如果這個解釋是正確的,那么大衛律是完全通用的。除非沒有相關的數據的保證,否則在每個定義域的每一個數據挖掘問題總是存在模式的。
第六,洞察律:數據挖掘增大對業務的認知。
數據挖掘是如何產生洞察力的?這個定律接近了數據挖掘的核心: 為什么數據挖掘必須是一個業務過程而不是一個技術過程。業務問題是由人而非算法解決的。數據挖掘者和業務專家從問題中找到解決方案,即從問題的定義域上達 到業務目標需要的模式。數據挖掘完全或部分有助于這個認知過程。數據挖掘算法揭示的模式通常不是人類以正常的方式所能認識到的。綜合這些算法和人類正常的 感知的數據挖掘過程在本質上是敏捷的。在數據挖掘過程中,問題解決者解釋數據挖掘算法產生的結果,并統一到業務理解上,因此這是一個業務過程。
這類似于“智能放大器”的概念,在早期的人工智能的領域,AI的第一個實際成果不是智能機器,而是被稱為“智能放大器”的工具,它能夠協助人類使用者提高獲取有效信息的能力。數據挖掘提供一個類似的“智能放大器”,幫助業務專家解決他們不能單獨完成的業務問題。
總之,數據挖掘算法提供一種超越人類以正常方式探索模式的能力,數據挖掘過程允許數據挖掘者和業務專家將這種能力融合在他們的各自的問題的中和業務過程中。
第七,預測律:預測提高了信息泛化能力。
“預測”已經成為數據挖掘模型可以做什么的可接受的描述,即我們常說的“預測模型”和“預測分析”。這是因為許多流行的數據挖掘模型經常使用“預測最可能的結果”(或者解釋可能的結果如何有可能)。這種方法是分類和回歸模型的典型應用。
但是,其他類型的數據挖掘模型,比如聚類和關聯模型也有“預測”的特征。這是一個含義比較模糊的術語。一個聚類模型被描述為“預測”一個個體屬于哪個群體,一個關聯模型可能被描述為基于已知基本屬性“預測”一個或更多屬性。
同樣我們也可以分析“預測”這個術語在不同的主題中的應用:一個分類模型可能被說成可以預測客戶行為—-更加確切的說它可以預測以某種確定行為的目標客戶,即使不是所有的目標個體的行為都符合“預測”的結果。一個詐騙檢測模型可能被說成可以預測個別交易是否具有高風險性,即使不是所有的預測的交易都有欺詐行為。
“預測”這個術語廣泛的使用導致了所謂的“預測分析”被作為數據挖掘的總稱,并且在業務解決方案中得到了廣泛的應用。但是我們應該意識到這不是日常所說的“預測”,我們不能期望預測一個特殊個體的行為或者一個特別的欺詐調查結果。
那么,在這個意義下的“預測”是什么?分類、回歸、聚類和 關聯 算法以及他們集成模型有什么共性呢?答案在于“評分”,這是預測模型應用到一個新樣例的方式。模型產生一個預估值或評分,這是這個樣例的新信息的一部分; 在概括和歸納的基礎上,這個樣例的可利用信息得到了提高,模式被算法發現和模型具體化。值得注意的是這個新信息不是在“給定”意義上的“數據”,它僅有統 計學意義。
第八,價值律:數據挖掘的結果的價值不取決于模型的穩定性或預測的準確性。
準確性和穩定性是預測模型常用的兩個度量。準確性是指正確的預測結果所占的比例;穩定性是指當創建模型的數據改變時,用 于同一口徑的預測數據,其預測結果變化有多大(或多小)。鑒于數據挖掘中預測概念的核心角色,一個預測模型的準確性和穩定性常被認為決定了其結果的價值的 大小,實際上并非如此。
體現預測模型價值的有兩種方式:一種是用模型的預測結果來改善或影響行為,另一種是模型能夠傳遞導致改變策略的見解(或新知識)。
對于后者,傳遞出的任何新知識的價值和準確性的聯系并不那么緊 密;一些模型的預測能力可能有必要使我們相信發現的模式是真實的。然而,一個難以理解的復雜的或者完全不透明的模型的預測結果具有高準確性,但傳遞的知識 也不是那么有見地;然而,一個簡單的低準確度的模型可能傳遞出更有用的見解。
準確性和價值之間的分離在改善行為的情況下并不明顯,然而一個突出問題是“預測模型是為了正確的事,還是為了正確的原因?” 換句話說,一個模型的價值和它的預測準確度一樣,都源自它的業務問題。例如,客戶流失模型可能需要高的預測準確度,否則對于業務上的指導不會那么有效。相 反的是一個準確度高的客戶流失模型可能提供有效的指導,保留住老客戶,但也僅僅是最少利潤客戶群體的一部分。如果不適合業務問題,高準確度并不能提高模型 的價值。
模型穩定性同樣如此,雖然穩定性是預測模型的有趣的度量,穩定性不能代替模型提供業務理解的能力或解決業務問題,其它技術手段也是如此。
總之,預測模型的價值不是由技術指標決定的。數據挖掘者應該在模型不損害業務理解和適應業務問題的情況下關注預測準確度、模型穩定性以及其它的技術度量。
第九,變化律:所有的模式因業務變化而變化。
數據挖掘發現的模式不是永遠不變的。數據挖掘的許多應用是眾所周知的,但是這個性質的普遍性沒有得到廣泛的重視。
數據挖掘在市場營銷和CRM方面的應用很容易理解,客戶行為模式隨著時間的變化而變化。行為的變化、市場的變化、競爭的變化以及整個經濟形勢的變化,預測模型會因這些變化而過時,當他們不能準確預測時,應當定期更新。
數據挖掘在欺詐模型和風險模型的應用中同樣如此,隨著環境的變化欺詐行為也在變化,因為罪犯要改變行為以保持領先于反欺詐。欺詐檢測的應用必須設計為就像處理舊的、熟悉的欺詐行為一樣能夠處理新的、未知類型的欺詐行為。
某些種類的數據挖掘可能被認為發現的模式不會隨時間而變化,比如數據挖掘在科學上的應用,我們有沒有發現不變的普遍的規律?也許令人驚奇的是,答案是即使是這些模式也期望得到改變。理由是這些模式并不是簡單的存在于這個世界上的規則,而是數據的反應—-這些規則可能在某些領域確實是靜態的。
然而,數據挖掘發現的模式是認知過程的一部分,是數據挖掘在數據描述的世界與觀測者或業務專家的認知之間建立的一個動態 過程。因為我們的認知在持續發展和增長,所以我們也期望模式也會變化。明天的數據表面上看起來相似,但是它可能已經集合了不同的模式、(可能巧妙地)不同 的目的、不同的語義;分析過程因受業務知識驅動,所以會隨著業務知識的變化而變化。基于這些原因,模式會有所不同。
總之,所有的模式都會變化,因為他們不僅反映了一個變化的世界,也反映了我們變化的認知。
后記:
這九條定律是關于數據挖掘的簡單的真知。這九條定律的大部分已為數據挖掘者熟知,但仍有一些不熟悉(例如,第五、第六、第七)。大多數新觀點的解釋都和這九條定律有關,它試圖解釋眾所周知的數據挖掘過程中的背后的原因。
我們為什么何必在意數據挖掘過程所采用的形式呢?除了知識和理解這些簡單的訴求,有實實在在的理由去探討這些問題。
數據挖掘過程以現在的形式存在是因為技術的發展—-機器學習算法的普及以及綜合其它技術集成這些算法的平臺的發展,使得商業用戶易于接受。我們是否應該期望因技術的改變而改變數據挖掘過程?最終它會改變,但是如果我們理解數據挖掘過程形成的原因,然后我們可以辨別技術可以改變的和不能改變的。
一些技術的發展在預測分析領域具有革命性的作用,例如數據預處 理的自動化、模型的重建以及在部署的框架里通過預測模型集成業務規則。數據挖掘的九條定律及其解釋說明:技術的發展不會改變數據挖掘過程的本質。這九條定 律以及這些思想的進一步發展,除了有對數據挖掘者的教育價值之外,應該被用來判別未來任何數據挖掘過程革命性變化的訴求。
我要感謝Chris Thornton 和 David Watkins,他們的見解啟發了這項工作,也同樣感謝在LinkedIn “數據挖掘九規律”討論組有做出貢獻的人,他們提出了寶貴的意見。
文章出處:http://qxde01.blog.163.com/blog/static/67335744201144103147739/