文章的立足點,不是基於資料採礦的演算法,和一些詳細的演算法實施。在讀一些大牛的部落格中,這方面已經寫的非常詳細,但是我們一開始看到這的純技術的部落格,一些公式,一些演算法,難免吃力。所以前期,有一個整體概念上的疏導是很有必要,對那些想在資料採礦下點功夫的人,是一件很好的事情。其實我們的困惑是不知道它能做什麼,這就是為了開始知道它能做什麼而準備。
資料採礦與統計學之間的區別,我在上面的一篇Thinking in BigDate(五)大資料之統計學與資料採礦部落格中細細談到過,這裡不多贅述。實際上,所有的資料採礦技術都是以機率論和統計學為基礎的。
下面我們將探討如何用模型來表示簡單的、描述性的統計資料。如果我們可以描述所要找的事物,那麼想要找到它就會變得很容易。這就是相似度模型的來曆——某事物與所要尋找的事物越相似,其得分就越高。
下面就是查詢模型,該模型正在直銷行業很受歡迎,並廣泛用於其它領域。樸素貝葉斯模型是表尋找模型中一種非常有用的泛化模型,通常表查詢模型適用於較低的維度,而樸素貝葉斯模型准許更多的維度加入。還有線性迴歸和羅吉斯迴歸模型,都是最常見的預測建模技術。迴歸模型,用於表示散佈圖中兩個變數之間的關係。多元迴歸模型,這個准許多個單值輸入。隨後介紹羅吉斯迴歸分析,該技術擴充了多元迴歸以限制其目標範圍,例如:限定機率估計。還有固定效應和分層迴歸模型,該模型可將迴歸應用於個人客戶,在許多以客戶為中心的資料採礦技術之間搭建了一座橋樑。
1、相似度模型
相似度模型中需要將觀察值和原型進行比較,以得到相應的相似度得分。觀察值與原型相似度越高,其得分也就越高。一種度量相似度的方法是測量距離。觀察值與原型值之間的距離越近,觀察值的得分就越高。當每個客戶細分都有一個原型時,該模型可以根據得分把客戶分配到與其最相似的原型所在的客戶細分中。
相似度模型有原型和一個相似度函數構成。新資料通過計算其相似度函數,就可以計算出相似度得分。
1.1、相似度距離
通過出版社的讀者比一般福士要富有,而且接受教育的程度要高為例。通常前者要比後者在富有程度、教育程度的比例大三倍。這樣我們就可以給讀者一個訊息——“工資很高,並且受過良好的教育”。
如果要把對讀者的描述表示成一個可以識別該雜誌潛在的讀者的模型,就需要對理想的讀者做出精確的定義,並以此來量化潛在讀者與理想讀者之間的相似程度。
相似度和距離是同一概念的兩種不同描述方式,但是它們度量的方向不同。使用距離作為度量指標時,如果兩個事物彼此非常靠近,那麼兩者就很相似。所以當兩者距離很小時,相似度就會很高。
例如:出版社的理想讀者的受教育程度是16年,年度營收100000美元。那麼受教育14年,年度營收75000美元的潛在客戶與理想客戶之間的相似度是多少呢?另外它們與受教育12年,並且年度營收為150000美元的潛在客戶又有多少相似呢?這時候,我們要選擇一個度量的標準,歐式距離。當我們計算一潛在客戶與理想客戶(x=16,y=100000)之間的距離時,就會發現收入在計算中佔了主導地位,因為它的取值比教育年限大的多得多。這就引入另一個問題:度量尺度。解決方案:將兩值分別減去相應的平均值然後除以相應的標準差。這樣就把兩者轉化成分數,然後用分數代替原來的值來計算歐式距離。
歐式距離僅計算距離方法之一。這裡才採用歐式距離只是為了將原型目標的一種統計描述與某種距離函數結合起來,搭建一種相似度模型。有了潛在使用者與理想客戶之間的距離,就可以對潛在客戶排序,或者將距離作為另一種計算的輸入,得到預期的收入或相應機率。
1.2 、構建相似度模型的步驟
構建相似度模型,首先是要對原型進行描述,或得到一個用於與其他對象進行比較的理想對象。這些描述必須表示為度量,對於那些與理想值較近或較遠的對象,這些變數的取值要明顯不同。
首先,要解決三個問題
(1)“差”記錄與“好”記錄有什麼區別?
(2)理想的“好”記錄看起來是什麼樣子的?
(3)如何度量與理想對象之間的距離?
2、表查詢模型
實現資料採礦模型的一個簡單方法就是查詢表。表查詢模型思想就是:相似的人所作出的反應也相似。對一個新觀測值的評分涉及兩個步驟。一、為觀測值指定一個特定的標籤或主鍵。主鍵對應於查詢表中的一個單元格。二、被分配到某一個單元格的所有記錄都會有一個得分,該分值在模型訓練時就被賦予該單元格。
分配主鍵的方式有多種。決策樹模型適用了規則集將觀測值分配到特定的分葉節點,分葉節點的ID就可以作為一個可用於查詢得分的主鍵。聚類技術為記錄指定標籤,這裡的聚類標籤就可以作為查詢主鍵。
構建查詢表,一、為查詢表選擇輸入變數。將訓練集中的每條記錄精確地分配到該表中的一個單元格中。使用訓練集中的統計資料來刻畫單元格的特徵,這些統計資料包括平均值、標準差以及落入該單元格的訓練執行個體個數。在為模型評分的時候會用到這些統計資料。分數可以是數值型目標的平均值,也可以是屬於某一特定類別的比例,或者是單元格中佔主導地位的類別。
2.1、選擇維度
每個維度都應該是一個對目標有影響的變數。理想情況,輸入變數不應該彼此相關,實際上,很難避免之間不相關。相關變數的實際影響是,訓練完成後有些單元格僅含有幾個訓練執行個體,這會使得估計值的信賴度偏低。實際情況可能好點,因為要評分的新資料在那些單元格中也是稀疏的。
例如:在RFM模型中,有一個維度是採購總數,還有一個維度是整個生存期的花費。在兩個變數高度相關,因為通常情況下,額外的購買會創造額外的收入。很少有記錄會落入到購買數量最大而收入卻很少,或收入很高而採購量卻很少的單元格情況。
應該避免使用高度相關的變數作為查詢表的維度,因為這些相關變數會導致大量的稀疏的單元格。包含訓練樣本過少的單元格會產生信賴度偏低的目標估計值。
對維度數的主要限制是單元格中訓練記錄的數量。在維度數與每個維度上分到的訓練樣本數之間有一個權衡。使用較少的維度,可以在每一個維度上進行更加精細的劃分。在實際處理過程中,可能會出現該單元格中什麼都沒有,有的時候這種情況是確實存在的。這種異常情況,表中應該包含具有預設得分的單元格,這樣就可為那些與任意主鍵不匹配的記錄分配得分。典型的預設異常單元格得分,就是平均值。
2.2、維度劃分
在實際的過程中,並不需要,每一個類別劃分一個維度。維度分割應該依實而用。對於一個維度合理劃分是按高、中、低劃分,而對另一個維度合理劃分可能是按照百分比來劃分。有的時候,根據商務規則來定分割點,遵循這些特定的分割點劃分記錄可能那個比等分劃分更有意義。有監督的分割,可以用於確保分割的有效性。這個後面在討論。
2.3、從訓練資料到得分
維度劃分好以後,在訓練集上計算每個單元格的得分就簡單了。對於數值型目標而言,得分=平均值。對於類別目標,每個類別會有一個得分=每個單元格類標籤的比例。這樣對於每個類都有一個機率估計,即待評分的資料記錄屬於該類的機率。
2.4、通過刪除維度處理稀疏和缺失資料
有些單元格沒有分配到足夠多的資料,這會導致目標估計值的信賴度較低。對於這類單元格該怎麼辦?一、減少每個維度上的劃分數量。二、減少定義稀疏單元格的維度數。
例如:構建某購物網站物品清單價格的競爭力模型。基於清單熟悉感,點擊吸引力的分析考慮四個維度:
·產品
·地區
·供應商類型
·星期幾
對於一些比較受歡迎的產品,使用這四個維度是有道理的。而對於不受歡迎的商品,沒有足夠多的清單來支援所有維度,所以要丟棄一些維度。對於一些產品,放棄星期幾這一維度就OK。對於已協商產品,只是基於三個維度而不是基於四個維度之間的比較。對於一些產品,甚至只留下一個維度,對於這類產品,要做的就是持續刪除維度併合並單元格,直到每個單元格含有足夠的多的資料。
3、RFM:一種廣泛使用的查詢模型
RFM模型,稱為近期、頻率以及貨幣。RFM背後的邏輯很簡單。近期下單的客戶在不久的將來再次購買的機率可能性非常大。在過去有許多購買記錄的顧客更有可能在不久的將來再次購買,並且在過去消費較多的客戶更有可能在將來消費更多。RFM是一種最大化現有客戶收益的技術,而不是吸引新客戶的技術。
將客戶分配大RFM單元中,三個RFM變數需要轉化為三個量化指標。近期:距離上次購買的天數或周數,用於得到R的得分。
第二個變數頻率,通常是以前下單的總數,記錄F的得分。最後一個是客戶生存期中的總的花費,該值用於建立M的得分。每個維度5等分。由於維度之間具有相關性,如F維和M維,所以各個單元格的客戶數量並不相等。要做的就是將所有的資料都分配到合適的單元格中,而且每個單元格要有足夠多的記錄,從而目標估計值具有一個可以接受的信賴度。
3.1、RFM單元格轉移
對於每個營銷活動,客戶都會在RFM單元格之間轉移。那些做出響應的客戶對增加其消費頻率和消費總額,並且會減少距上一次購買的時間。這些新的取值通常都會遷移到單元格中。沒有響應的客戶也可能因距上一次購買時間的增加而轉移到新的單元格。其實這就是週期性資料更新,模型更新。資料的遷移,會導致原來的期望的變化,在資料單元格遷移過程中,要不斷的瞭解客戶的需求,及時的更改資料。
3.2、RFM和增量響應建模
增量響應建模的目標是識別那些容易被說服的潛在客戶——受營銷影響最大的人。RFM可以看成是對客戶營銷活動響應能力的預測。在定義好的RFM單元格之後,需要為每個單元格分配成員,要麼是接收營銷資訊的測試群組成員,要麼就是不接受該資訊的對照群組成員。基於測試組和對照組兩個分組之間的響應率之差決定了營銷活動對於發現潛在客戶的能力。對於測試組和對照組之間的響應率差異最大的單元格,營銷獲得產生的影響也是最大的。但這些單元格的響應率卻未必是最大的。
後面我們將介紹樸素貝葉斯模型、線性迴歸、多元迴歸、羅吉斯迴歸分析等模型。
參考《資料採礦技術》
CopyrightBUAA