天天看點

一小時了解資料挖掘⑤資料挖掘步驟&常用的聚類、決策樹和CRISP-DM概念

資料挖掘有很多不同的實施方法,如果隻是把資料拉到Excel表格中計算一下,那隻是資料分析,不是資料挖掘。本文主要講解資料挖掘的基本規範流程。CRISP-DM和SEMMA是兩種常用的資料挖掘流程。

從資料本身來考慮,資料挖掘通常需要有資訊收集、資料內建、資料規約、資料清理、資料變換、資料挖掘實施過程、模式評估和知識表示8個步驟。

步驟(1)資訊收集:根據确定的資料分析對象,抽象出在資料分析中所需要的特征資訊,然後選擇合适的資訊收集方法,将收集到的資訊存入資料庫。對于海量資料,選擇一個合适的數

據存儲和管理的資料倉庫是至關重要的。

步驟(2)資料內建:把不同來源、格式、特點性質的資料在邏輯上或實體上有機地集中,進而為企業提供全面的資料共享。

步驟(3)資料規約:如果執行多數的資料挖掘算法,即使是在少量資料上也需要很長的時間,而做商業營運資料挖掘時資料量往往非常大。資料規約技術可以用來得到資料集的規約表示,它小得多,但仍然接近于保持原資料的完整性,并且規約後執行資料挖掘結果與規約前執行結果相同或幾乎相同。

步驟(4)資料清理:在資料庫中的資料有一些是不完整的(有些感興趣的屬性缺少屬性值)、含噪聲的(包含錯誤的屬性值),并且是不一緻的(同樣的資訊不同的表示方式),是以需要進行資料清理,将完整、正确、一緻的資料資訊存入資料倉庫中。不然,挖掘的結果會差強人意。

步驟(5)資料變換:通過平滑聚集、資料概化、規範化等方式将資料轉換成适用于資料挖掘的形式。對于有些實數型資料,通過概念分層和資料的離散化來轉換資料也是重要的一步。

步驟(6)資料挖掘過程:根據資料倉庫中的資料資訊,選擇合适的分析工具,應用統計方法、事例推理、決策樹、規則推理、模糊集,甚至神經網絡、遺傳算法的方法處理資訊,得出有

用的分析資訊。

步驟(7)模式評估:從商業角度,由行業專家來驗證資料挖掘結果的正确性。

步驟(8)知識表示:将資料挖掘所得到的分析資訊以可視化的方式呈現給使用者,或作為新的知識存放在知識庫中,供其他應用程式使用。

資料挖掘過程是一個反複循環的過程,每一個步驟如果沒有達到預期目标,都需要回到前面的步驟,重新調整并執行。不是每件資料挖掘的工作都需要這裡列出的每一步,例如在某個工作

中不存在多個資料源的時候,步驟(2)便可以省略。步驟(3)資料規約、步驟(4)資料清理、步驟(5)資料變換又合稱資料預處理。在資料挖掘中,至少60%的費用可能要花在步驟(1)資訊收集階段,而其中至少60%以上的精力和時間花在了資料預處理過程中。

掘的了解。

聚類

所謂聚類,就是類或簇(Cluster)的聚合,而類是一個資料對象的集合。

和分類一樣,聚類的目的也是把所有的對象分成不同的群組,但和分類算法的最大不同在于采用聚類算法劃分之前并不知道要把資料分成幾組,也不知道依賴哪些變量來劃分。

聚類有時也稱分段,是指将具有相同特征的人歸結為一組,将特征平均,以形成一個“特征矢量”或“矢心”。聚類系統通常能夠把相似的對象通過靜态分類的方法分成不同的組别或者更多的子集(Subset),這樣在同一個子集中的成員對象都有相似的一些屬性。聚類被一些提供商用來直接提供不同訪客群組或者客戶群組特征的報告。聚類算法是資料挖掘的核心技術之一,而除了本身的算法應用之外,聚類分析也可以作為資料挖掘算法中其他分析算法的一個預處理步驟。

下圖是聚類算法的一種展示。圖中的Cluster1和Cluster2分别代表聚類算法計算出的兩類樣本。打“+”号的是Cluster1,而打“○”标記的是Cluster2。

在商業中,聚類可以幫助市場分析人員從消費者資料庫中區分出不同的消費群體,并且概括出每一類消費者的消費模式或者消費習慣。它作為資料挖掘中的一個子產品,可以作為一個單獨的工具以發現資料庫中分布的一些深層次的資訊,或者把注意力放在某一個特定的類上以作進一步的分析并概括出每一類資料的特點。

聚類分析的算法可以分為劃分法(Partitioning Methods)、 層次法(Hierarchical Methods)、基于密度的方法(Density-Based Methods)、基于網格的方法(Grid-Based Methods)和基于模型的方法(Model-Based Methods)等。

比如,下面幾個場景比較适合應用聚類算法,同時又有相應的商業應用:

哪些特定症狀的聚集可能預示什麼特定的疾病?

租同一類型車的是哪一類客戶?

網絡遊戲上增加什麼功能可以吸引哪些人來?

哪些客戶是我們想要長期保留的客戶?

聚類算法除了本身的應用之外還可以作為其他資料挖掘方法的補充,比如聚類算法可以用在資料挖掘的第一步,因為不同聚類中的個體相似度可能差别比較大。例如,哪一種類的促銷對客戶響應最好?對于這一類問題,首先對整個客戶做聚集,将客戶分組在各自的聚集裡,然後對每個不同的聚集,再通過其他資料挖掘算法來分析,效果會更好。

後面的文章中我們還會詳細介紹聚類算法是如何實作的。本文中多次提到的RFM模型也是基于聚類算法的資料挖掘模型。而在營銷領域的客戶關系管理中,RFM聚類模型也是最經常被使用的一種模型。

估測和預測

估測(Estimation)和預測(Prediction)是資料挖掘中比較常用的應用。估測應用是用來猜測現在的未知值,而預測應用是預測未來的某一個未知值。估測和預測在很多時候可以使用同樣的算法。估測通常用來為一個存在但是未知的數值填空,而預測的數值對象發生在将來,往往目前并不存在。舉例來說,如果我們不知道某人的收入,可以通過與收入密切相關的量來估測,然後找到具有類似特征的其他人,利用他們的收入來估測未知者的收入和信用值。還是以某人的未來收入為例來談預測,我們可以根據曆史資料來分析收入和各種變量的關系以及時間序列的變化,進而預測他在未來某個時間點的具體收入會是多少。

估測和預測在很多時候也可以連起來應用。比如我們可以根據購買模式來估測一個家庭的孩子個數和家庭人口結構。或者根據購買模式,估測一個家庭的收入,然後預測這個家庭将來最需要的産品和數量,以及需要這些産品的時間點。

對于估測和預測所做的資料分析可以稱作預測分析(Predictive Analysis),而因為應用非常普遍,現在預測分析被不少商業客戶和資料挖掘行業的從業人員當作資料挖掘的同義詞。

我們在資料分析中經常聽到的回歸分析(Regression Analysis)就是經常被用來做估測和預測的分析方法。所謂回歸分析,或者簡稱回歸,指的是預測多個變量之間互相關系的技術,而這門技術在資料挖掘中的應用是非常廣泛的。

決策樹

據統計,在2012年,被資料挖掘業者使用頻率最高的三類算法是決策樹、回歸和聚類分析。而且因為決策樹的直覺性,幾乎所有的資料挖掘的專業書籍都是從某一個決策樹算法開始講起的:如ID3/C4.5/C5.0,CART,QUEST,CHAID等。

有些決策樹做得很精細,用到了資料大部分的屬性,這時,我們可能闖入了一個誤區,因為在決策樹算法上我們需要避免的一個問題是把決策樹建構得過大,過于複雜。過于複雜的決策樹往往會過度拟合(Over-Fitting),不穩定,而且有時候無法诠釋。

這時我們可以把一棵大的決策樹分解成多棵較小的決策樹來解決這一問題。

我們來看一個商用的決策樹執行個體。下圖中展示的是用IBM SPSS Modeler資料挖掘軟體建構的一棵決策樹,是美國商業銀行用以判斷客戶的信用等級的決策樹模型。

上圖是根據收入、信用卡數量和年齡建構的決策樹,并以80%的準确率作為劃分的門檻值。第一個分支查的是收入,設立了兩個關鍵資料分隔點,按照收入把人群先劃分成3組:低收入、中等收入和高收入。其中低收入的節點直接變成葉子節點,這組人中82.0976%的人的信用等級是差的(Bad),而且信用卡個數或者年齡對信用等級的分類沒有幫助。決策樹的第二層判斷是根據已經擁有的信用卡個數。以此作為判斷,高收入人群可以再做劃分。其中擁有卡個數在5個或以上的82.4176%信用等級是優質的(Good),而擁有卡的數量在5張以下的,高達96.8944%的人信用等級是優質的。因為這棵樹一共有6個葉子節點,所我們最終劃分出6組人群,其中有一組信用等級為優質的人群占比56.3147%,是無法判斷的。其中在資料上表現最好的是高收入而信用卡個數在5張以下的人,把他們判斷為優質信用等級有96.8944%的準确率。

如果我們手裡還有别的資料,比如是否有房有車,是否結婚等,那麼通過測試,可以進一步提高這棵決策樹的精度。

CRISP-DM

1999年,在歐盟(European Commission)的資助下,由SPSS、DaimlerChrysler、NCR和OHRA發起的CRISP-DM Special Interest Group 組織開發并提煉出CRISP-DM(CRoss-Industry Standard Process for Data Mining),進行了大規模資料挖掘項目的實際試用。

Modeler契合度非常好。

一個資料挖掘項目的生命周期包含六個階段。這六個階段的順序是不固定的,我們經常需要前後調整這些階段。這依賴每個階段或是階段中特定任務的産出物是否是下一個階段必須的輸入,下圖中箭頭指出了最重要的和依賴度高的階段關系。

上中最外面這一圈表示資料挖掘自身的循環本質,每一個解決方案釋出之後代表另一個資料挖掘的過程也已經開始了。在這個過程中得到的知識可以觸發新的,經常是更聚焦的商業問題。後續的過程可以從前一個過程中得到益處。

我們把CRISP-DM的資料挖掘生命周期中的六個階段,也就是上圖中的概念解釋如下:

業務了解(Business Understanding)

最初的階段集中在了解項目目标和從業務的角度了解需求,同時将這個知識轉化為資料挖掘問題的定義和完成目标的初步計劃。

資料了解(Data Understanding)

資料了解階段從初始的資料收集開始,通過一些活動的處理,目的是熟悉資料,識别資料的品質問題,首次發現資料的内部屬性,或是探測引起興趣的子集去形成隐含資訊的假設。

資料準備(Data Preparation)

資料準備階段包括從未處理的資料中構造最終資料集的所有活動。這些資料将是模型工具的輸入值。這個階段的任務能執行多次,沒有任何規定的順序。任務包括表、記錄和屬性的選擇,以及為模型工具轉換和清洗資料。

模組化(Modeling)

在這個階段,可以選擇和應用不同的模型技術,模型參數被調整到最佳的數值。一般,有些技術可以解決一類相同的資料挖掘問題。有些技術在資料形成上有特殊要求,是以需要經常跳回到資料準備階段。

評估(Evaluation)

到這個階段,你已經從資料分析的角度建立了一個高品質顯示的模型。在開始最後部署模型之前,重要的事情是徹底地評估模型,檢查構造模型的步驟,確定模型可以完成業務目标。這個階段的關鍵目的是确定是否有重要業務問題沒有被充分的考慮。在這個階段結束後,一個資料挖掘結果使用的決定必須達成。

節選譚磊所著的自《大資料挖掘》一書。未完待續……