RM 案例分享(一)
RapidMiner在業界中有很多實際的應用,這些案例都是RapidMiner自帶的,都是真實存在的,大家可以用同樣的操作,對案例有一個很好的理解和應用。
01|案例說明
首先我們學習最經典的機器學習模型,就是監督學習(Supervised Learning)中的分類模型。這邊使用的是一個電信公司的案例,通過客戶的基本資料和一些簡單的互動信息,建立一個模型,以預測哪些客戶有較高的可能性流失,從而進行補救。
因為研究顯示得到:「一個新客戶的成本是维持一個老客戶的7倍」,並且通過和老客戶维持良好的關係之後,有更多的機會得到老客戶的推薦而產生新客戶,所以對於任何的企業,掌握客戶何時可能會流失,而及早的提出補救做法,對於企業是非常必要和關鍵的,這個流程如下圖所示:
02|數據資料
首先我們分析數據,共有9990筆的數據。包括了客戶所使用的電信種類、客戶年纪、客戶開始時間、聯絡紀錄、以及客戶的平均帳單金額。這邊所使用的流失指標,可能是通過其他模型或是人工的方式给予標識,我們使用這個作為我們的指標,來預測客戶流失的可能性。
03|操作流程
Step1讀入數據
這裡使用了一個簡單讀入數據的算式,但是不要先急著開始做數據的模型,應該先對數據做一個全面的了解,包括數據的質量(有沒有缺失?合不合理?)、種類(多項式?整數?)以及關聯性等等,如下圖所示:
通過這個觀察,我們可以看到一些簡單的問題。流失指標並不能作為一個分類的目標值,而其目標必須是一個二項式(Binomial)的數值,所以這個部分需要在數據整理之中進行處理,或者是有些人的年纪是1歲,這個可能是錄入的錯誤,這個時候要判斷哪些是合理的數據或不是,從而進行處理。
同時也應該做一些簡單的數據分析,大概理解數據的基本性質,這樣可以更有效地對模型進行一個直觀的判斷。通常都是對於數據進行直觀的圖形了解,要使用何種圖形則可以依照不同的目的來了解。例如我們可以通過對於不同屬性和目標值的關係,大概掌握一些特性,如下圖所示:
但是這個只是一個分法,其真正的作用,是在之後的第二階段,我們將其和心理特徵解惑之後,就可以看出其強大的能力。通過這個圖形我們就可以發現數據裡面的一些性質,可以很清楚的看得出來流失的機會和賬單金额有一定的關係,這邊就提供了一個基本的信息,而在最後的模型之中,這個特質也必須被反應出來。
在這個數據理解的過程中,如果發現屬性和屬性之間,或是屬性和目標值之間的關聯性,就更應該進行關聯性分析(也有算式來做這個處理)。如果關聯係數太大,則要考慮是否應該將其排除,以避免模型的效率低下或是模型的偏差。
Step2 數據整理
在這個步驟,我們基本上就處理之前所提到的問題。首先,第一個是告訴系统何者是目標值(Chun Indicator);第二個是為了要决定哪些客戶有流失的機會,我們將流失指標值從實數的數值屬性轉換為二項式數值的屬性。在這個操作裡面,注意到這個是通過人工的判斷,將0到0.5的數值作為客戶不會轉換的標準,超過0.5就認為客戶有可能會流失,把它標示為可能流失的客戶。如果更有信心,這個數值也可以定成其他的標準,如下圖所示:
這個步驟就是典型的ETL過程。當然還可以有很多别的操作,讓數據變得更為有效和模型更為準確,在這個裡面我們就不個别叙述。
Step3: 模型建立/檢驗
這裡我們使用的是交叉檢驗的子程序,如果打開可以看到其中的操作過程。如同前面講過,交叉檢驗是將數據分為數個等份(系统缺省值是10),利用不同的數據抽樣,對於模型進行更嚴格的校準,所以這個是通常在RM模型建立中會最常使用的方式,如下圖所示:
這裡需要特别注意的是,因為在原始數據中流失的客戶與不會流失的客戶比例事實上是不平衡的(21:9969),也就是說單方面的比例遠遠大於另外一方,這個對於最後的结果,會造成一定的模型偏差,所以在這邊我們做了一個抽樣的方式,將结果分為2個較為平衡的數據,來進行模型的建立。需特别注意的是,因為這個抽樣的算式是在交叉檢驗的模型裡面,所以每一次的數據數量只有原來的1/10,而在通過抽樣之後,因為指定目標值的(1:0.02)比例,所以可以看得出來比1/10的數據量還要再减少。大家可以仔细的研究一下其中的數目,會给大家更有深入的理解,如下圖所示:
之後的操作就比較直觀,通過使用决策樹的方式建立模型。右邊的部分則是使用這個模型來對其測試的數據(原來的1/10)進行檢驗,並且將檢驗的结果輸出。請注意這邊的算式,必須使用正確的算式(Binomial)這樣才不會造成錯誤。
04|结果說明
最後的结果是三個圖,第一個是混淆矩陣,這個告訴我們模型的準確度以及相關資料,其整體的準確度很高(98.52%+/-0.58%),是一個非常好的结果。
另外一個是決策樹模型本身,這邊可以檢驗在之前數據理解的步驟中,我們觀察到賬單和流失的關係,的確是表現在其第一個節點,所以我們對於這個模型也是比較有信心的。第三個是檢驗的結果一併輸出,這樣可以理解混淆矩陣的來源(計算方式),三張圖如下所示:
混淆矩阵验
決策樹模型本身
檢驗的结果
05|建議練習
1.對於這個客戶,如果我們將年紀中不合理的部分(年紀是1歲)或是分為幾個不同的級別(Binning),該如何有效的操作?
2.案例使用的是決策樹模型,且得到很好的效果。但如果使用其他模型(如SVM)是否會有更優良的或更差的結果?
3.如何決定在抽樣的操作中,其比例是最優的參數設定,可以用什麼算式達到這個效果?
如果對於這個案例已經瞭解,可以跳到案例範本中的 LIFT Chart 的案例,這個可以給你更直觀的理解關於模型的準確度驗證。
06|關於精銘數據公司
精銘數據公司是國内 RapidMiner的總代理公司,具有多位國内外專家,致力於數據分析的實用化和相關諮詢培訓。公司對於數據營銷、渠道管理、工業自動化、物聯網等行業有實際業務提供專業的服務。
如有需要,請掃描下面二维碼,關注公眾號,歡迎與我們聯絡。
06|關於暢品科技有限公司
暢品科技有限公司是國內 RapidMiner的總代理公司,具有多位元國內外專家,致力於資料分析的實用化和相關諮詢培訓。公司對於數據資料行銷、管道管理、工業自動化、物聯網等行業有實際業務提供專業的服務。如有需要歡迎與關注我們的資訊(QR code)並與我們實驗室聯絡。
實踐大學數據分析實驗室
reskm98@gmail.com
07-6678888-4380
留言
張貼留言