0 引言
隨著電子商務的發展,企業的產品越來越趨向于同質化,僅僅依靠產品本身很難在日趨激烈的競爭中取勝,所以愈來愈多的先進企業將重點從“以產品為中心”向“以客戶為中心”的新型商業模式轉移,客戶關系管理也就應運而生。客戶關系管理為企業經營、決策和管理提供了一種新型商業模式。
當今許多企業的數據庫或數據倉庫中都搜集和存儲了大量關于客戶的寶貴數據,這些數據涵蓋了從客戶基本數據、購買記錄及客戶反饋的各個環節。充分利用這些數據,深入分析、挖掘隱含在這些數據中的有用信息,將有助于企業更好地管理客戶關系,實現CRM的功能和目標。數據挖掘技術的目的是對這些數據進行抽取、轉換、分析和模型化處理,從中提取輔助商業決策的關鍵性數據律。客戶關系管理是數據挖掘技術在企業決策支持系統中的重要應用領域。
1 CRM與數據挖掘的基本理論
1.1 CRM的概念
客戶關系管理(Customer Relationship Management,簡稱CRM)是指對企業和客戶之間的交互活動進行管理的過程。它是企業為了提高核心競爭力,通過改進對客戶的服務水平,提高客戶滿意度和忠誠度所樹立起來的以客戶為核心的經營理念;是通過開展系統化的理論研究,優化企業組織體系和業務流程,實施于企業的市場營銷、銷售、服務、技術支持等與客戶相關的領域,旨在改善企業與客戶之間關系的新型機制;也是企業通過技術投資,建立能搜集、跟蹤和分析客戶信息的系統,創造并使用先進的信息技術、軟硬件,以及優化的管理方法和解決方案的總和。
1.2 數據挖掘的定義
數據挖掘(或KDD)是從大量數據中提取出可信的、新穎的、有效的并能被人理解的模式的處理過程,這種處理過程是非平凡的過程。
數據挖掘從數據集中識別出的模式來表示的知識的處理過程是一個多步驟的處理過程,多步驟之間相互影響,反復調整,形成一種螺旋式上升過程,挖掘的知識表示為概念(Concepts)、規則(Rules)、規律(Regularities)等形式。
1.3 數據挖掘技術在CRM中的應用
隨著信息技術的迅速發展,特別是數據庫技術和計算機網絡的廣泛應用,企業擁有的數據量急劇增大。在大量的數據與信息中,蘊藏著企業運作的利弊得失。若能夠對這種海量的數據與信息進行快速有效地深入分析和處理,就能從中找出規律和模式,獲取所需知識,幫助企業更好地進行企業運籌決策。數據挖掘技術和產品在這種市場需求中逐漸發展成熟,并使企業獲得極高的投資回報。在企業管理客戶生命周期的各個階段都會用到數據挖掘技術。數據挖掘能夠幫助企業確定客戶的特點,從而可以為客戶提供有針對性的服務。
2 數據挖掘中的決策樹算法
2.1 決策樹的基本理論
所謂決策樹就是一個類似流程圖的樹型結構,其中樹的每個內部結點代表對一個屬性(取值)的測試,其分支就代表測試的每個結果;而樹的每個葉結點就代表一個類別。樹的最高層結點就是根結點。為了對未知數據對象進行分類識別,可以根據決策樹的結構對數據集中的屬性值進行測試,從決策樹的根結點到葉結點的一條路徑就形成了對相應對象的類別預測。
2.2 決策樹的生成
決策樹的生成的基本算法是貪心算法。它以自頂向下遞歸的各個擊破方式構造決策樹。建立一棵決策樹通常分為兩個階段:建樹(Tree Building)和剪枝(Tree Pruning)。
2.3 決策樹算法
SPRINT算法吸取了SLIQ算法的預排序技術,但它使用不同的數據結構,消除了所有的內存限制,且易于并行化,進一步增強了可伸縮性。所采用的剪枝算法與SLIQ相同。因為決策樹算法中的關鍵問題是建樹,而建樹階段與剪枝階段相比,其所需時間遠遠大于剪枝所需時間。下面對SPRINT算法中的幾個關鍵步驟加以闡明。
2.3.1 數據結構
屬性表(Attribute List):SPRINT算法使用一種新的屬性表數據結構,存放類和rid(index of the record)信息。每個屬性具有一個屬性表,表中每條記錄由屬性值、類標號和rid組成。初始狀態下,對數值型屬性按其屬性值進行排序。如果內存不夠,屬性表可以駐留磁盤。最初的根據訓練集所創建的屬性表均指向樹根,隨著樹的生長,當節點分裂時,屬性表被劃分,并在結果子女節點分布,當表劃分時,表中記錄的次序維持不變,因此,劃分表不需要重新排序。
直方圖(Histograms):SPRINT算法中的直方圖是用于計算每一種分裂方案的gini指數值。對于數值型屬性,每一個節點,對應兩個直方圖,分別用Cabove,和Cbelow表示。它們表示屬性記錄在給定節點上的類分布情況。遍歷屬性表時,直方圖也隨之改變,其中:Cabove表示未掃描過的屬性記錄的類分布情況。Cbelow表示己掃描過的屬性記錄的類分布情況。對于離散屬性,每個節點對應有一個直方圖,它包含給定屬性上每一個值的類分布情況。
2.3.2 節點的分裂方法
計算最佳分裂:在SPRINT算法中,采用gini指數作為評價節點分裂質量的參數。尋找最佳分裂的方法是:遍歷每一個節點的屬性表,同時評價每個屬性表的分裂價值,完成遍歷后,包含gini索引最低的分裂點的屬性作為最佳分裂方案。
執行節點分裂:創建節點,執行節點分裂這一步的主要任務是對節點的每一個屬性表進行劃分。包含分裂屬性的屬性表的劃分十分容易。即通過遍歷屬性表,應用分裂條件去測試,然后根據測試的結果將記錄分別放入每一個子節點的屬性表中。
2.3.3 算法的剪枝
SPRINT的剪枝算法MDL屬于事后修剪(post pruning)算法。通常的事后剪枝的數據源采用一個Training Set的一個子集或者與Training Set獨立的數據集進行操作。MDL(Minimum Description Length)的目標是生成一棵描述長度最小的決策樹。MDL原理認為:最優的編碼模型是描述數據代價最小的模型。如果模型M對數據集D進行編碼,那么描述代價:cost(DIM)=cost(D|M)+cost(M)
其中:cost(M|D)表示表示編碼的總代價;cost(D|M)表示用模型M對數據D編碼的編碼代價,單位bits,cost(M)表示描述模型本身所需的編碼長度。
2.3.4 SPRINT算法的評價
SPRINT算法的優點是明顯的,它總能夠生成一棵最好的樹。但是,這種算法在處理數值型屬性的時候也有明顯的不足:1)它需要對整個訓練集進行預先排序;2)對所有的數值型屬性的不同值都要進行gini指數的評估。
這種方法工作量很大,特別是對于超大數據集,當屬性含有大量的不同取值時,效率非常低。為了減少SPRINT算法的計算量,提高算法的效率,我們的算法主要從處理數值型屬性方面對SPRINT算法進行改進。
3 SPRINT算法的改進
3.1 改進算法的描述
在改進的算法中,采用寬度優先的策略來構建決策樹和使用gini指數來評估數值型屬性。我們改進的主要部分就是在決策樹的構建階段對數值型屬性的處理部分,采用了上述提出的純區間歸約的方法來處理數值型屬性。改進算法的詳細描述如算法3.1所示。
算法3.1改進的SPRINT算法的描述
在算法3.1中,集合T、T1、T2分別代表樹中的結點,其中T1和T2是T的兩個分支結點。最后生成的決策樹是一棵二叉樹。
3.2 兩種算法的比較分析
由于改進的算法和SPRINT算法的不同之處主要是在構建決策樹階段對數值型屬性的處理方法,算法的分析主要是比較兩種算法在樹的構建階段的I/O需求和時間代價。我們的比較分為預處理階段和決策樹中每個結點的構建階段。
在改進的算法中,估算每一個區間邊界的gini值的時間代價為O(qc);決定每個非純區間的記錄,建立臨時區間屬性表需要一次讀和一次寫操作的時間代價為O(n);對每個非純區間排序和計算每個非純區間中的精確gini值的時間代價
在SPRINT算法中,對屬性表的全部記錄進行排序是整個處理過程的主要時間花銷。在改進的算法中有效地避免了全局排序,只是對非純區間進行局部排序;同時,純區間進行歸約,減小了gini值的計算量。
4 客戶分類模型的建立
4.1 建立數據挖掘模型的基本理論
在實施數據挖掘之前,先制定采取什么樣的步驟,每一步都做什么,達到什么樣的目標是必要的。很多軟件供應商和數據挖掘公司都提供了一些數據挖掘過程模型,CRISP-DM(Cross Industry Standard Process for Data Mining)是公認的、最有影響的數據挖掘方法論之一。CRISP-DM將整個挖掘過程分為以下六個階段:商業理解(Business Understanding),數據理解(Data Understanding),數據準備(Data Preparation),建立模型(Modeling),模型評估(Evaluation)和模型發布(Deployment)。如圖1所示。
圖1 CRISP-DM數據挖掘過程
在實際項目中,CRISP-DM模型中的數據理解、數據準備、建模、評估并不是單向運作的,而是一個多次反復、多次調整、不斷修訂完善的過程。
4.2 建立客戶分類的模型
按照CRISP-DM的數據挖掘的一般過程模型,對一個客戶數據集按照客戶持有的客戶會員卡進行分類。
4.2.1 商業理解
用作測試分析的數據集Food Mart 2000,是Micro Soft產品SQL Server 2000 Analysis Services提供的示例數據庫。在Food Mart 2000數據庫中提供了24個表,每一個表都有一定數據量。其中,Customer表中多達27個屬性,共有10281個不同客戶的記錄,每個客戶數據記錄包含有客戶數據:客戶姓名、性別、住址、電話、婚姻狀況、客戶持有的會員卡類型等個人信息。如圖2所示。
圖2 Customer數據表
4.2.2 數據準備
客戶表Customer有多達27個屬性,如果全用來進行客戶分類,將使所建立的決策樹過大、不好理解,并且有些屬性明顯對客戶選用會員卡沒有任何貢獻。比如姓名、電話號碼等。在開始數據挖掘前,用戶會可以根據常識、經驗等因素通過初選,選出一些主觀上認為與分類屬性有關的、會比較明顯影響分類屬性取值的候選屬性,也可以用數據挖掘工具提供的相關分析技術,篩選出適合用來進行建模的屬性。
下面我們選用Microsoft SQL Server 2005中的Analysis Services工具對Customer表的數據進行相關分析。其中member_card是我們所要的分類屬性。相關分析的結果如圖3所示:
圖3 屬性相關分析結果
從圖3所示的相關分析的結果可以看到,要進行基于會員卡的分類,我們選擇如下的屬性:yearly_income、education、Bum_cars_owned、num_children_at_home、occupation等五個屬性進行分析。
4.2.3 建立模型和評估
用改進的SPRINT算法解決本章定義的客戶分類問題,分兩步:第一步,用訓練數據集建立決策樹模型;第二步,對模型的準確率用測試數據進行測試。
由于模型過分適合訓練數據,若使用訓練數據評估分類模型,可能導致過于樂觀的估計。保持和k-折交叉驗證是兩種基于給定數據隨機取樣劃分的、常用的評估分類模型準確率的技術。這里采用保持方法。
在保持方法中,給定數據集被隨機劃分成兩個獨立的集合:訓練集和測試集。通常,三分之二的數據分配到訓練集,其他三分之一分配到測試集。從給定數據集中取樣,構成訓練數據集。訓練數據集大小:10281×2/3=6854,測試數據集大小10281×1/3=3427。用某一次隨機取樣方法得到的訓練集和改進的SPRINT算法建立決策樹模型。
1)模型的建立
在改進的SPRINT算法中,只考慮了yearly_income(年收入)屬性和child_Bum_at_home(在家子女數)屬性作為數值型屬性,我們在決策樹的構建過程中,將yearly_income屬性分為8個區間,分別是(0,2]、(2,4]、(4,6]、(6,8]、(8,10]、(10,12]、(12,14]、(14,16]。決策樹算法通過剪枝后可以得到如下模型,如圖4所示。
圖4 決策樹圖示
2)模型的評估
用包含3427條記錄的測試數據集對模型進行測試:對每條客戶記錄,從圖4中決策樹根節點0開始,首先用客戶yearly-income(年收入)進行屬性測試,如果客戶的年收入少于“2”,在決策樹中到達節點1,如果客戶本來持有的會員卡就是Normal,那么模型對該客戶分類正確,否則發生分類錯誤;如果客戶的年收入大于等“2”,到達節點2,因為節點2不是葉節點,還要用child_num_at_home(在家子女數)屬性繼續測試,客戶在該屬性上的不同取值而到達節點3或節點4,然后對節點3用yearly_income(年收入)進行屬性測試,客戶在該屬性上的不同取值而到達節點5或節點6,最后再用child_Bum_at_home(在家子女數)屬性對節點6繼續測試,客戶在該屬性上的不同取值而到達節點7或節點8。
再對原數據集進行四次取樣,分別用獲得的訓練集和測試集建立決策樹模型并對模型作測試,每次建立的模型的結構一致、各節點所屬類別沒有發生變化。
4.2.4 模型發布
模型的發布就是在一個數據挖掘模型建立好以后,將數據挖掘所獲得的知識用一種用戶可以使用的方式來組織和表示出來。預言模型標記語言PMML(Predictive Model Markup Language)是利用XML描述和存儲數據挖掘模型的一種標準。
作為數據挖掘領域事實上的行業標準,為不同數據挖掘系統之間共享模型提供了標準的表示規范,是數據挖掘平臺所遵循的模型表示格式,該規范的內容是一份XML DTD文檔。
5 結論
隨著信息技術的發展和數據挖掘技術的成熟,數據挖掘的研究重點逐漸從算法的研究轉向了算法的應用,數據挖掘技術在CRM中的應用是當前的研究熱點,基于決策樹技術在CRM中有著廣泛的應用。
企業通過對客戶的分類模型,采取相應的客戶服務和客戶銷售的策略,最大程度地提高客戶的價值及客戶的忠誠度,使客戶管理的資源為整個企業的發展動向和服務策略提供有利的指導。經營決策者一方面可以通過對客戶的分類和評估,指導企業決策;另一方面,也可以挖掘潛在的客戶和發現客戶行為的分類規則,由此達到保持和擴大客戶群。從這兩方面來看,數據挖掘對企業的經營決策和客戶關系管理都具有相當重要的作用和意義。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.guhuozai8.cn/
本文標題:數據挖掘技術在CRM中的應用和研究
本文網址:http://m.guhuozai8.cn/html/consultation/1083935014.html