數據挖掘的目的,就是從數據中找到更多的優質用戶。什么是有指導的數據挖掘方法模型,以及數據挖掘如何構建模型。在構建一個有指導的數據挖掘模型,首先要理解和定義一些模型試圖估計的目標變量。一個典型的案例,二元響應模型,如為直接郵寄和電子郵件營銷活動選擇客戶的模型。模型的構建選擇歷史客戶數據,這些客戶響應了以前類似的活動。有指導數據挖掘的目的就是找到更多類似的客戶,以提高未來活動的響應。
這構造有指導的數據挖掘模型的過程中,首先要定義模型的結構和目標。二、增加響應建模。三、考慮模型的穩定性。四、通過預測模型、剖析模型來討論模型的穩定性。下面我們將從具體的步驟談起,如何構造一個有指導的數據挖掘模型。
有指導數據挖掘方法:
把業務問題轉換為數據挖掘問題
選擇合適的數據
認識數據
創建一個模型集
修復問題數據
轉換數據以揭示信息
構建模型
評估模型
部署模型
評估結果
重新開始
步驟:
1、把業務問題轉換為數據挖掘問題
《愛麗絲夢游仙境》中,愛麗絲說“我不關心去哪兒”。貓說:“那么,你走哪條路都沒什么問題”。愛麗絲又補充到:只要我能到達某個地方。貓:“哦,你一定能做到這一點,只要你能走足夠長的時間。”
貓可能有另外一個意思,如果沒有確定的目的地,就不能確定你是否已經走了足夠長的時間。
有指導數據挖掘項目的目標就是找到定義明確的業務問題的解決方案。一個特定項目的數據挖掘目標不應該是廣泛的、通用的條例。應該把那些廣泛的目標,具體化,細化,深入觀察客戶行為可能變成具體的目標:
OAt: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-stroke-width: 0px">·確定誰是不大可能續訂的客戶
·為以家庭為基礎的企業客戶設定一個撥打計劃,該計劃將減少客戶的退出率
·確定那些網絡交易可能是欺詐
·如果葡萄酒和啤酒已停止銷售,列出處于銷售風險的產品
·根據當前市場營銷策略,預測未來三年的客戶數量
有指導數據挖掘往往作為一個技術問題,即找到一個模型以解釋一組輸入變量與目標變量的關系。這往往是數據挖掘的中心,但如果目標變量沒有正確的定義以及沒有確定適當的輸入變量。反過來,這些任務又取決于對要解決的業務問題的理解程度。沒有正確的理解業務問題就沒辦法把數據轉化為挖掘任務。在技術開始之前,必須認識兩個問題:如何使用結果?以何種方式交付結果?
上述兩個問題,都是建立在客戶的真正需求是什么?而不是作為數據挖掘工程師認為的什么是有用的數據,什么對客戶最好的數據。這些結果看似有利于客戶提高銷售額,但是我們交付的結果是什么,我們有理解客戶的需求嗎?所有前提,不要著急急著動手,先理解真正需求,不可盲目主斷。
1.1如何使用結果?
例如:許多數據挖掘工作旨在提高客戶保留
·主動向高風險或高價值的客戶提供一個優惠,挽留他們
·改變獲取渠道的組合,以利于那些能帶來最忠實客戶的渠道
·預測未來幾個月的客戶數量
·改變會影響客戶的滿意度的產品的缺陷
這些目標都會對數據挖掘過程產生影。響。通過電話或直接郵寄的營銷活動接觸現有客戶,意味著除了確定客戶風險之外,你要了解為什么他們處于風險中,從而可以構造一個有吸引力的優惠。電話,不能過早或過遲。預測意味著除了確定那些客戶可能離開,確定有多少新客戶加入,以及他們會停留多久。而新客戶的加入,不只是意味著預測模型要解決的問題,還是被納入到業務目標和預算之中。
1.2如何交付結果?
有指導的數據挖掘項目可能會產生幾個不同類型的交付形式。交付形式往往是一個報表或充滿圖標和圖形的簡報。交付形式會影響數據挖掘的結果。當我們的目的是提醒銷售驚雷時,產生一個營銷測試的客戶列表是不夠的。所謂的如何交付結果,就是在挖掘結果產生之后,我們要如何給用戶提供這個結果,目的是好的,但實際的過程中會遇到,會遇到我們沒有辦法去交付這個結果。因為,你交付的結果,可能會導致一些本不該流失的客戶,卻流失了。這也是在具體工作之前,我們要考慮的問題。
數據挖掘人員的作用是確保業務問題的最后表述可以被轉換成一個技術問題。前提是正確的業務問題。
2、擇合適的數據
2.1什么數據可用?
尋找客戶數據的首要地方就是企業數據倉庫。倉庫中的數據已經被清洗和核實過,并且多個數據源被整合到一起。一個單一的數據模型有望確保命名相似的字段在整個數據庫和兼容的數據類型中都有相同的含義。企業數據庫是一個歷史數據庫,新數據不斷的被追加,但歷史數據一直不變。從這一點更有利于做決策支持。
問題在于,在許多企業組織中,這樣的數據倉庫實際上并不存在,或者存在一個或多個數據倉庫,不符合直接作為規范的數據用來挖掘。在這種情況下,挖掘人員,必須尋求來自不同的部門的數據庫和業務系統內的數據。業務系統數據是指執行一個特定的任務,如網站運行,索賠處理,完成呼叫或賬單處理。它們的目標是快速、準確的處理事務,數據可以保存成任何格式。而這些對于沒有數據倉庫的一些企業來說,這些數據往往是隱藏的很深,需要大量的企業調度和規劃來整理這些數據。這也就談到了一個問題:就是數據倉庫對一家企業的重要性,而建立企業級數據倉庫,需要的決策不是一個經理就可以完成的,這可能需要企業級最高領導下令,下面的所有部門全部配合。
在企業總確定哪些數據可用是相當困難的。因為許多的文檔會丟失或過時。通常情況下,沒有一個人可以提供所有答案。確定什么數據可用,需要遍歷數據字典,了解具體的業務,溝通每個部門,訪問用戶和DBA,審查現有的報告以及查找數據本身是否有用。還有些問題,不僅需要有關客戶的數據,還需要潛在的客戶的數據。當需要這些數據的時候,外部資源和業務系統,如Web日志、呼叫詳細記錄、呼叫中心系統、有時甚至是郵件或電子表格,這些都是數據信息的來源。
數據挖掘工作的方式并不是一直等到完美和干凈的數據才進行下一步工作。雖然需要額外干凈的數據,但是受挖掘必須能夠使用目前的數據,提前入手,開始工作。
2.2多少數據才足夠?
一、數據越多越好,更多意味著更好。在建模期間,必須對模型集進行平衡,使得每個結果的數目都相等。如果在一個大規模的樣本中有一個比例很小的稀有數據,則一個較小的、均衡的樣本會更受歡迎。
二、當模型集足以建立良好的、穩定的模型時,使它更大將會產生相反的作用,因為這時需要更長時間在更大的模型上去運行,由于數據挖掘是一個反復的過程,這就導致時間的浪費。如果一次建模例程的運行都需要數小時而不是數分鐘,這個時間的消耗就耗不起的。這就導致,在模型確定后,數據并不是越多越好。
2.3需要多久的歷史?
數據挖掘使用過去的數據預測未來。但是,數據需要來自多久的過去?這個沒有定性的回答,這要考慮很多的因素。另一方面,歷史上太久的數據未必對數據挖掘有用,因為市場環境在變化,特別是當一些外部事件(如監管制度的變化)進行了干預時尤其如此。對于許多以客戶為中心的應用,2-3年的歷史是合適的。然而,在這種情況下,客戶關系確實存在有效才被證明是有價值的,那么重要的是什么:最初的渠道是什么?最初的報價是什么?客戶最初怎么支付的等。
多少變量:
不熟練數據挖掘的人員有時太急于拋出不太可能有意義的變量,且只保存了他們認為重要的幾個精心挑選的變量。數據挖掘方法要求數據本身能揭示它重要或不重要。
通常情況下當與其他變量結合使用時,原先被忽視的變量會具有預測價值。例如:一個信用卡者從未把把現金刷沒又繼續刷,通過數據挖掘發現他們僅在11月和12月才會使用用信用卡墊付。據推測,這些人非常謹慎,大部分時間他們都避免因多刷而產生的高利息,謹慎也推斷出一個結論(他們比習慣使用現金墊款的人更加不太可能選擇拖欠欠款),但在假期,他們需要一些額外的現金,并愿意為此付出較高的利息。
2.4數據必須包含什么?
最低限度,數據必須包含有可能有意義的結果的例子。有指導數據挖掘的目的是預測一個特定目標變量的值,但在有指導的數據挖掘中,模型集必須由分類好的數據組成。要區分哪些人拖欠貸款哪些人不可能拖欠,模型集的每個類都需要有成千上萬的例子。當一個新的申請產生時,他的申請會與過去的客戶的申請進行對比,可以直接把新的申請歸類。這其中隱含的意思:數據可用來形容過去發生了什么事情,從錯誤總吸取教訓,首先我們必須識別我們已經犯了什么錯。
3、認識數據
在數據用于構建模型之前,在探索數據上花費時間的重要性通常沒有得到足夠的重視。后面我們會抽出絕對的篇幅來說明這個問題。優秀的數據挖掘工程師似乎非常依賴直覺——例如,某種程度上能夠猜測將要派生的變量結果如何。要在陌生的數據集中利用直覺來感應發生了什么事情,唯一辦法就是陷入數據之中,你會發現許多數據質量的問題,并能夠得到啟發提出在其他情況下不容易被發現的問題。
3.1檢查分布
在數據庫的初步探索階段,數據可視化工具非常有益,如:散列圖、條形圖、地理地圖、Excel等可視化工具對觀察數據提供了強大的支持。
當你開始著手一個新數據源中的數據文件,就應該剖析數據了解到底發生了什么,包括計數和每個字段的匯總統計,分類變量不同值的數量,并在適當的情況下,需要基于產品和區域的交叉統計表。除了提供對數據的了解,剖析工作可能會產生不一致問題或定義問題的警告,這些問題可能會對后面的分析造成麻煩。
3.2值與描述的比較
觀察每個變量的值,并把它們與現有文件中的變量描述進行比較。這項工作可以發現不準確或不完整的數據描述。其實是,你記錄的數據,是否和你要描述的數據一致,這個要先確定。目的是什么?在實際的數據挖掘過程中,你要去揣測這個字段的數據到底是什么意思?如果業務人員知道,那是最好的了。如果業務人員都不知道,這個時候,可能就需要憑借經驗去揣測了,而且這種情況經常發生,字段定義不明確。
3.3詢問大問題
如果數據看上去似乎不明智或者不如所愿,記錄下來。數據探索過程的一個重要輸出是對提供該數據的人給出一個問題列表。通常,這些問題將需要進一步研究,因為很少有用戶像數據挖掘工程師一樣仔細地觀察數據。對數據的探索的前期工作,判斷字段,含義,是否有用,是否缺失,是否有問題等一系列問題,需要大量的工作,同時也是一件心細的過程。
4、創建一個模型集
模型集包含建模過程中使用的所有數據。模型集中的一些數據被用來尋找模式,對于一些技術,模型集中的一些數據被用來驗證該模型是否穩定。模型集也可用來評估模型的性能。創建一個模型集需要從多個數據源聚合數據以形成客戶簽名,然后準備數據進行分析。
4.1聚合客戶簽名
模型集是一個表或一系列表,每一行表示一個要研究的項目,而字段表示該項目有利于建模的一切。當數據描述客戶時,模型集的行通常稱為客戶簽名。客戶簽名,每個客戶都由他離開的蹤跡唯一確定,你可以利用蹤跡充分的了解每個客戶。
從關系型數據庫中聚合客戶簽名旺旺需要復雜的查詢,這些查詢往往需要關聯很多的表去查詢的數據,然后利用其他來源的數據增強結果。聚合數據的一部分過程是使數據位于正確的匯總層次,然后每一行都包含先關客戶的所有信息。
4.2創建一個平衡的樣本
在標準的統計分析中,一種常見的做法是拋棄離群點——遠遠超出正常范圍的觀測值。然而在數據挖掘的過程中,這些利群點可能正是你要找的。或許他們帶有欺詐行為,可能是你的業務中的一些錯誤,或一些利潤驚人的市場商機。在這種情況下,我們不希望拋出離群點,認識和了解他們。
知識發現算法需通過實例來進行學習。如果沒有足夠數量的關于某個特定類或行為模型的例子,數據挖掘工具無法得出一個預測該類或模式的模型。在這種情況下,利用罕見事件的例子豐富該模型集,提高建模中該事件的概率。如果比較罕見,有兩種方法可以平衡樣本:一、分層抽樣。二、權重。
例如:銀行要建立一個模型,以確定哪些客戶是私人銀行計劃的潛在客戶。這些計劃只針對非常富有的客戶,他們在一個相當大的銀行客戶樣本中也是非常稀少的。如何構建一個能發現這類用戶的模型,該模型集可能需要有50%的私人銀行的客戶,即使他們代表所有支票份額中還不到1%。另外私人銀行客戶可能被賦予一個值為1的權重,其他客戶的權重為0.01,所以浙西專有客戶的總權重等于其余客戶的總權重。通過增加一些孤立點客戶的權重,從而達到模型對數據的合理梳理。
4.3時間幀
基于一個時間段內的數據建立模型會增加風險,即學習的知識不真實。結合模型集中的多個時間幀可以消除季節性因素的影響。由于季節性影響如此重要,因此應該把它們明確地添加到客戶簽名中。還有假日購物模式也非常重要。把客戶的信息按照時間細分,或是在相應的數據上打上標簽。
4.4創建一個預測模型
當模型集用來預測時,另一個問題,模型集應包含多長時間,時間段該如何劃分。任何客戶標簽在預測變量和目標變量之間都應該有一個時間差。時間可分為,過去、現在、將來。當然所有數據都來自過去,過去又分為三個時期:遙遠的過去、不太遙遠的過去和最近。預測模型就是要發現遙遠的過去的模型,用來解釋最近的輸出。當部署模型時,它能夠使用最近的數據預測未來。如果構建一個模型來利用6月份(不太遙遠的過去)的數據對7月份(最近)進行預測,那么在8月份之前的數據是可用的,但它不能用來對9月份進行預測。但是8月份的數據是可用的嗎?肯定不是,因為這時,數據仍在產生數據。也不會是9月份的第一周,因為這些數據需要被收集、清洗、加載、測試和認可。8月份的數據可能要懂啊9月份中旬或10月才能用,到這個時候,沒人會擔心9月份的預測了。解決的辦法是在模型集中跳過1個月。
4.5創建一個剖析模型集
剖析模型集與測試模型相似,但有一點:目標的時間幀與輸入的時間幀重疊。看微小的差別對建模工作的影響卻很大。因為輸入可能會“污染”目標模式。例如:銀行,擁有投資賬戶的客戶在儲蓄賬戶中往往有非常低的結余——因為他們能從投資賬戶中得到更好的回報。這是否意味著銀行要為了投資賬戶而識別低存儲賬戶余額的客戶呢?可能不需要,因為這些客戶的資產很少。
解決這個問題的一種方法是非常仔細得選擇剖析模型的輸入。把所有賬戶余額組合到“儲蓄”,“貸款”兩組。儲蓄組包括所有類型的儲蓄和投資。這種方法非常有效,事實證明模型是穩定的。一個更好的辦法:開通投資賬戶之前對賬戶產生一個模型。一個并發的問題是:由于每一個客戶的時間幀都取決于客戶開通賬戶的時間,建立這樣一個模型集面臨更多的困難。
當目標變量的時間幀與輸入變量的時間幀相同時,那么該模型是一個剖析模型,并且這個輸入可能會引入一些似是而非的模式,而這些模式可能會混淆數據挖掘技術。你需要非常小心地選擇輸入或者重建模型集來產生預測模型。
4.6劃分模型集
當你從適當的時間幀中獲得預分好的數據后,有指導數據挖掘房峰輝把它分為三個部分。一、訓練集,用戶建立初始模型。二、驗證集,用于調整初始模型,減少其與訓練集特性的額綁定,從而更具一般性。三、測試集,用來衡量吧模型應用與未知的數據時可能產生的效果。三個數據集是必要的,因為若某個數據已在此過程中的某一步使用過,那么它包含的信息就已經成為模型的一部分。因此,它不能用來修正或判斷模型。
我們往往很難理解為什么訓練集和驗證集被用來建立模型之后就會成為“污點”。這就好比你參加考試,你認為這題你做的是正確的,老師讓你去預測考試成績,你顯然認為分數很高,因為你認為,如果沒有答案,第二天在參加同樣的考試,你的想法不會改變。這時候,你的系統中沒有一個新的標準,這時,你需要的是一個驗證集。
現在,想象一下測試結果以后,估分之前老師讓你看看你同學的幾個試卷。如果他們都和你的結果不一樣,這時候,你可能會把你自己的答案標記為一個錯誤的答案。如果第二天老師給出了正確的結果,這個時候讓你再去做同樣的的試卷,你可能得出的就是不同的結果。這就是為什么驗證集應該不同于測試集的原因。
對于預測模型,一個好主意是測試集所在的時間段與訓練集和驗證集的時間段不同。一個模型的穩定性證據在于它在連續的月份中都能夠良好的運行。來自不同的時間段的測試集,也稱為不合時宜的測試集,雖然這樣的測試集并不總是可用,但是它是驗證模型穩定性的一個很好的方法。
5、修復問題數據
所有數據都是臟的。所有的數據都是有問題。究竟是不是問題有時可能隨著數據挖掘技術的變化而變化。對于某些技術,例如決策樹,缺失值和離群點并不會造成很大的麻煩,但是對于其他技術,例如回歸和神經網絡,它們會產生很多問題。
5.1分類變量的值太多
有許多值的變量必須以某種方式來處理。一種方法是對這些值進行分組,即把與目標變量關系相同的多個類別的值放在一起。
5.2包含偏態分布和離群點的數值變量
關于離群點和偏態分布的數據,采用:把所有變量和權重值相乘,然后求和。有時也采用,把這些值分成同等大小的值域,例如:小數點后的數據,我們采用最好轉換這些數據,通過對值的標準化來縮小這些值的范圍。
5.3缺失值
把缺失值納入模型中,但是模型本身去不能處理缺失值,丟棄這些值又會照成誤差,因為這些值是不均勻分布的。方法:替換,用平均值或最常見的值來替換。替換缺失值為一本不可能的值會產生更壞的結果。
一些數據挖掘工具提供了填充缺失值的功能,這些方法基本上市使用數據挖掘技術找出缺失值應該取什么值。
然而有些值往往由于很正常的缺失。例如,探究使用一年歷史數據的模型,對于在一年以上使用的用戶就會出現問題。他們在多出的時間里,那部分數據是空的。還有些客戶與數據庫不匹配,致使所有的人口統計值丟失。這時候,我們采用的是在不同部分的數據上建立多個模型。對超過一年的用戶,一個模型。對近期的客戶建立另一模型。按照自己的意愿,建立多個模型。
在建立模型的是要特別注意,記錄被拋棄的數據。通常模型被分解成不包含缺失值的子集,然后對每個子集建立一個單獨的模型。
6、轉換數據以揭示信息
在已經聚合了數據并修復了主要問題的數據問題后,準備對數據進行分析。這可能需要加入派生字段來揭示一些信息。還可能涉及要刪除離群點、分箱,對分類變量進行分組以及應用一些轉換,例如:對數轉換、把計數變成比例等。
7、構建模型
在有指導數據挖掘中,訓練集用于根據獨立的目標或輸入變量產生相關依賴或目標變量的解釋。這種解釋為,神經網絡、決策樹、鏈接圖、或其他關系的表示,即目標與數據庫中其他字段之間的關系。一般這些工作室友數據挖掘軟件自動完成。
8、評估模型
空缺,后面會具體的探討如何評估一個模型。
9、部署模型
數據挖掘工具把評分代碼當作模型部署過程中的一部分。這個評分可以利用:SAS或SPSS,或使用編程語言,C、java或C#。然而模型代碼的部署只解決了一半問題,因為模型通常使用不存在于原始數據中的輸入變量。模型的評分是一個很大的挑戰性,尤其當要對模型進行實時評分時。例如:當一個客戶把一件物品放到購物籃中或訪問Web頁面時,Web應用程序都需要對模型進行評分。這樣的評分必須非常迅速,因為客戶評分的過程不能干擾網站導航的便利性。
9.1優化模型進行部署
評估模型盈利需要考慮模型的成本和收益是否正確的情況。針對不同大小的人群,通過圖表可以顯示一個活動的額實際盈利能力。
評估模型的盈利需要詢問以下幾個問題:
·設立活動和支持它的模型的固定成本是多少
·每個優惠接受者的成本是多少、
·每個優惠響應者的成本是多少
·正面響應的價值是多少
當盈利模型的質量取決于它的輸入。雖然活動的成本和可變成本是很容易得到的,但是響應者的預測值很難估計。搞清楚客戶的價值是超出了討論范圍,但一個良好的故居有助于度量數據挖掘模型的價值。
最后,最重要的度量是投資回報率。度量測試集的提升有助于選擇合適的模型。基于提升的盈利計算有助于決定如何應用該模型的結果。但是,度量這些字段中的信息也非常重要。在一個數據庫營銷的應用中,這樣做需要撇開對照組,并根據不同的模型分數仔細跟蹤客戶的響應,制定合適的方案。
10、評估結果
一個典型的模型需要不同的測試組:
·檢驗組:具有較高的模型分數,比那個接收到反饋信息的組
·模型對照組:具有較高的模型分數,但是沒有得到反饋信息的組
·控制組:模型分數較低或是隨機的,并且接收到信息的組
·對照組:具有隨機的模型分數,并且沒有收到反饋信息的組
11、重新開始
每一個數據挖掘項目產生的問題比答案要多,這是件好事。這意味著一些以前不可見的新關系現在可見。新發現的關系提出了新的需要測試的假設,而數據挖掘的過程將重新開始。重新挖掘反饋有效信息。
總結:
有指導的數據挖掘就是搜索歷史記錄,從而找到能解釋一個特定結果的模式。有指導數據挖掘模型的兩個類別分別是剖析模型和預測模型。這些類型使用相同的技術和方法:它們之間的區別僅僅在于模型集的構造方式。
有指導數據挖掘問題解決方案可能涉及多個串連起來的模型。因此,一個交叉銷售模型可能針對每個產品采用不同的預測模型,并使用決策規則以選中最佳結果。響應模型可用于優化盈利,它真正地計算了響應的期望值,而不是響應的可能性。一個更復雜的方法是使用增量響應模型,這時的目標是營銷工作影響響應率的增加,而不僅是響應率本身。
在數據挖掘模型創建過程中,第一道坎就是把數據挖掘問題轉換成業務問題。下一個挑戰就是找到適當的數據,這些數據可以轉化為可操作的信息。找到數據后,應當對其進行深入探索,探索過程可能會發現一些數據問題。它也將有助于建立數據挖掘人員對數據的直觀理解。下一步就是創建一個模型集,并把它劃分為訓練集、驗證集和測試集。
數據轉換是必須的,兩個目的:一、修復一些數據相關的問題,例如缺失值和值太多的分類變量。二、揭示一些信息,通過創新的變量來代表趨勢、其他比例和組合。后面在詳細談數據如何轉換。
當數據轉換好了,構建模型就是一個相對容易的事情。每類模型有自己的指標,通過這些指標可以評估它,獨立于模型之外的評估方法也是可行的。其中有一些很重要的評估方法是提升圖和ROC圖,這些方法表明了該模型的如何增加目標變量預測值的濃度,并給出混淆矩陣以顯示二元相應模型誤分類的錯誤率,還為數值目標顯示分數分布圖。后面我們會基于這個方法更深入的探討有指導數據挖掘技術是如何構建自己的模型。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:構建一個有指導的數據挖掘模型
本文網址:http://www.guhuozai8.cn/html/consultation/10839316743.html