基于數據挖掘的客戶關系管理設計與研究(圖文)

論文導讀:數據挖掘的目的是選擇合適的分類算法將公司的客戶合理分類。首先確定所要生成的決策樹的相關分類C,如“關鍵客戶”,“主要客戶”,“一般客戶”,“潛在客戶”。
關鍵詞:數據挖掘,客戶關系,決策樹
 

1 引言

本課題研究的公司其客戶的不斷增加,為了減少公司的投入以及更有效的利用公司現有的人力資源,將所有客戶適當分類勢在必行。隨著公司客戶的不斷增加,和客戶相關的信息資料也不斷增加,這就要求公司投入更多的人力和物力來整理這些龐雜信息資料,而且為了更有效的利用公司現有的人力資源,將所有客戶適當分類也勢在必行。很顯然,如果僅僅依靠傳統人工技術,這將是一項非常困難的工作。本文就是選擇好的解決方法。

通過公司的mis系統,可以搜集到關于客戶的基本信息、客戶近段時間內的訪談記錄、客戶的銷售確認單(SO 單)、客戶擁有的設備等信息資料。接下來的工作就是如何從這些信息資料中挖掘出公司所需要的知識。我們需要解決的問題如下:

1)用戶的根本需要,即用戶需要發現什么?2) 用戶對現有數據中的哪些屬性更加關注?3) 數據挖掘的目的是什么?

2 系統的概要設計

2.1設計目標

需要是發明之母。對每個問題有了一個比較清晰的結論才可以進行以后的工作,才可以保證以后的工作的有用性。期望的結果如下:

1)用戶需要對所有客戶合理分類,為公司制定各種營銷和服務活動打好基礎;

2)用戶對數據中客戶的SO單、訪談記錄數量等更加關注;

3)數據挖掘的目的是選擇合適的分類算法將公司的客戶合理分類。

由上面的問題分析可以分析出用戶的需求:用戶已經有了一個業務數據庫,而且積累了大量的數據,用戶希望可以利用這些數據將客戶合理分類,以便公司制定各種營銷和服務活動,增加銷售收入。

2.1數據預處理

數據預處理技術可以改進數據的質量,對挖掘數據進行壓縮、歸約等處理,從而有助于提高其后的挖掘過程的精度和運行性能。數據預處理包括一些復雜的過程,一般包括數據清理、數據集成、數據變換、數據歸約。

1)數據清理。數據清理要去除數據集中的噪聲數據和無關數據,處理遺漏數據和清洗臟數據,取出空白數據域和知識背景上的白噪聲,考慮時間順序和數據變化等。主要包括重復數據處理和缺值數據處理,并完成一些數據類型的轉換。論文參考。比如,數據庫中大量存在null值,這將會影響我們最終的挖掘結果,怎樣才能為該屬性填上空缺的值呢?我們可以忽略該條記錄,也可以使用最可能的值人工填寫空缺值,或者使用一個全局常量(或該屬性的平均值)填充空缺值。論文參考。

2)數據集成。數據集成主要是將多文件或多數據庫運行環境中的異構數據進行合并處理,解決語義的模糊性。該部分主要涉及數據的選擇、數據的沖突解決以及不一致數據的處理問題。比如,數據分析者或計算機如何才能確信一個數據庫中的customer _id 和另一個數據庫中的customer_number 指的是同一實體?通常,我們通過元數據(關于數據的數據)來解決這個問題,這種元數據可以幫助避免模式集成中的錯誤。

3)數據變換。數據變換主要是找到數據的特征表示,用維變換或轉換方法減少有效變量的數目或找到數據的不變式,包括:規格化、歸約、切換、旋轉和投影等操作。比如,在數據庫的客戶信息表中并沒有設置某個字段來記錄客戶的訪談記錄情況(>=40 或20...40 或<=20),通過SQL 語句也只是能得到該客戶的訪談記錄的具體數量,這里就必須進行數據變換,將屬性數據離散化,以適應數據挖掘的需要。

4)數據歸約。有些數據屬性對發現任務是沒有影響的,這些屬性的加入會大大影響挖掘效率,甚至還可能導致挖掘結果的偏差。因此,有效的縮減數據是很必要的。

5)事實表:把所有的度量值合成到一張表中,這張表就是事實表,事實表中存放的是所有用戶所關心的數據,分析時通過按不同的維度,查看、翻轉、切片數據來得到關心的信息。

6)維度表:維度表存放了事實數據的描述信息,一般包括時間、地點等信息。

3 所選分類算法的研究

3.1決策樹的生成

本次數據挖掘的基本算法可以描述如下:

首先確定所要生成的決策樹的相關分類 C,如“關鍵客戶”,“主要客戶”,“一般客戶”,“潛在客戶”。

樹以代表訓練樣本的單個節點開始。

如果樣本都在屬于 C,則該節點成為樹葉,并標記該節點的概率權值為1。

否則,算法使用稱為“信息增益”的基于熵的度量作為啟發信息,選擇能夠最好的將樣本分類的屬性。該屬性成為節點的“測試”或“判定”屬性。

對于測試屬性的每個已知的值,創建一個分支,并據此劃分樣本。論文參考。

算法使用同樣的過程,遞歸的形成每個劃分上的樣本決策樹。一旦一個屬性出現在一個節點上,就不會在該分支再次出現。

遞歸劃分步驟當且僅當下列條件之一成立時停止:

1) 給定節點的所有樣本都屬于C或者都不屬于C。此時當前節點成為葉子節

點,并標記該節點的概率權值為1或0。

2) 有剩余屬性可以用來進一步劃分樣本。此時當前節點成為葉子節點,并

標記該節點的概率權值為C類樣本在樣本中所占比例。

3) 分支test_attribute=ai沒有樣本。在這種情況下,以樣本中的多數類創建一個樹葉。

3.2 決策樹的剪枝

在決策樹構造時,許多分支可能反映的是訓練數據中的噪聲或孤立點。樹剪枝試圖檢測和剪去這種分支,以提高在未知數據上分類的準確性。通常使用統計度量,剪去最不可靠的分支,這將導致較快的分類,提高樹獨立于測試數據正確分類的能力,目前剪枝方法主要有以下幾種:

1)減小錯誤修剪法(Reduced Error Pruning):此方法由Quinlan提出。在此方法中,檢測決策樹中非葉的節點,當此節點被最佳的葉取代而產生的錯誤數目小于或者等于之前未修剪的決策樹的錯誤數目,則修剪成功;否則修剪失敗,放棄修剪。

2)悲觀錯誤修剪法(Pessimistic Error Pruning):此方法同樣是由Quinlan提出的。Quinlan發現,當用產生決策樹的訓練數據來檢測錯誤率時,實際上對錯誤的估計過于樂觀了。

3)基于代價復雜度的修剪法(Cost Complexity Pruning):此方法由Breiman等提出,主要包括:按照一些啟發式的方法由原決策樹產生一系列子樹{T0,T1,T2,……,TL};通過評價以上子樹的錯誤率來選擇一個最好的子樹以取代原決策樹。

4)代價敏感(Cost Sensitive)的決策樹修剪方法:上述決策樹修剪方法均是通過分析錯誤率的大小來決定是否進行修剪。對于所有這些錯誤,假設它們的嚴重性都是等同的。但在現實生活中,情況并非如此,往往不同的錯誤具有不同的嚴重性。

我們可以根據編碼所需的二進位位數,而不是根據期望錯誤率,對樹進行剪枝。所得的“最佳剪枝樹”使得編碼所需的二進位最少。這種方法采用最小描述長度原則。這一原則遵循的理念是最簡單的解是最期望的。不想代價復雜性剪枝,它不需要獨立的樣本集。

3.3由決策樹提取分類規則

決策樹很容易轉換成分類規則,并以IF-THEN 形式的分類規則表示。對從根到樹葉的每條路徑創建一個規則。沿著給定路徑上的每個屬性-值對形成規則前件(“IF”部分)的一個合取項。葉節點包含類預測,形成規則后件(“THEN”部分)。IF-THEN規則易于理解,特別是當給定的樹比較大的時候。

圖1:概念buys computers的決策樹,

指出顧客是否購買計算機

沿著由根節點到樹葉節點的路徑,圖1的決策樹可以轉換成如下的IF-THEN

分類規則:

IF age=”<=30” AND student=”no” THENbuys_computers=”no”

IF age=”<=30” AND student=”yes” THENbuys_computers=”yes”

IF age=” 30...40” THEN buys_computers=”yes”

…… …… ……

3.4 算法的復雜性分析

假設參與分類算法的客戶記錄數為n,共有分析屬性p個,分析屬性值為q個ID3 算法掃描每條數據記錄q×p 次,若每次掃描數據記錄耗費一個單位時間,則法的時間復雜性為 O(n)。

4 系統的詳細設計

4.1 系統結構的設計

系統大致可以分成三層:數據層(包括業務數據庫和數據倉庫)、業務邏輯層、數據展現層。如圖2。

圖2:系統的層次結構

4.2 業務邏輯層的設計

業務邏輯層同樣分為三層:Facade層、BO 層、DAO層。如下圖3所示。將業務邏輯層分層的主要目的在于提高系統的重用性、可維護性、可移植性。

圖3 業務邏輯層設計

DAO Factory和DAO都屬于DAO層,DAO封裝訪問數據層的所有方法,一般來說,一個DAO只對應一張數據庫表,由DAO Factory 實例化不同數據表對應的DAO。將DAO層作為獨立的一層的主要優勢在于:

1)上層(BO層)在實現對數據層操作時只需要調用該層提供的統一接口,提高了代碼的重用性,也大大簡化了開發。

2)通過提供操作接口使得該層的功能實現對上層透明,當需要對數據庫操作進行修改時,無須修改上層的大量程序文件,而只需修改該層的方法,降低了層與層之間的耦合度,增強了靈活性。

3)該層作為功能獨立的一層,可以作為獨立組件重用,提高了軟件的可復用性。

BO層封裝具體的業務操作邏輯,根據不同的邏輯調用不同的DAO方法以取得相應的結果,比如根據權限的大小限定用戶可以查看的結果。在BO層可以調用多個DAO,即可以操作多張數據庫表。

Facade層對外提供統一的接口,因為在完成一個功能調用的時候可能會涉及到多個BO。為了最小化下層的修改對上層的影響,用戶調用的是Facade 層的方法,而不是直接讓用戶來調用BO 層的方法。Facade 層可以直接調用DAO 層的方法,也可以通過BO層來調用DAO層的方法,這取決于具體的業務需要。

另外,DAO返回的只是相應數據庫表的內容(對應Data Object),當需要聯合顯示多個數據庫表的內容時,在Facade 層做相應的數據拼裝(由多個Data Object 按需要組合成Facade Data Object),以適應數據展現層的表示需要。這樣做一方面提高了系統的安全性,另一方面減小了訪問客戶端的負擔。

5 結束語

數據挖掘的進行不是在設計和建造階段就可以最終確定的,要經過用戶的反復驗證和不斷改進才可以做到真正滿足用戶的需要。因此,還存在進一步的工作有待完善。

??數據挖掘出來的知識,只是相對于某一時間的某些數據的,新的數據可能使發現的新知識與原來的知識沖突。

??根據已經有的分類算法分析出的結果,不斷優化分類算法和參數值的設置,使挖掘出的結果更加符合用戶的需求。

??發掘用戶其他需求,建立新的挖掘模型,添加到已有系統中,進一步增強系統的功能。


參考文獻:
[1] 李冠乾,許亮. CRM 數據挖掘中關聯規則的應用. 昆明理工大學學報-理工版. 2004年2月,第29卷,第1期.
[2] 蔡淑勤,劉至高,梁凱春,王略. 基于Web的CRM應用系統技術支持平臺研究. 武漢理工大學學報-信息與管理工程版. 2005年2月,第27卷,第1期.
[3] 黃解軍,萬幼川. 基于數據挖掘的電子商務策略. 計算機應用與軟件. 2004年6月,第21卷,第7期.
 

發表評論
留言與評論(共有 0 條評論)
   
驗證碼:

相關文章

河北快三走势图手机版