Python基于SVM和RankGauss的低消費指數(shù)構(gòu)建模型
全文鏈接:https://tecdat.cn/?p=32968
原文出處:拓端數(shù)據(jù)部落公眾號
分析師:Wenyi Shen
校園的溫情關(guān)懷是智慧校園的一項重要內(nèi)容。通過大數(shù)據(jù)與數(shù)據(jù)挖掘技術(shù)對學生日常校園內(nèi)的消費信息進行快速篩選和比對,建立大數(shù)據(jù)模型,對校園內(nèi)需要幫助的同學進行精準識別,為高校溫情關(guān)懷提供有效的數(shù)據(jù)依據(jù)。
該項目解決的主要問題是如何通過數(shù)據(jù)挖掘技術(shù)篩選和比對學生消費信息,從而自動識別校園內(nèi)需要幫助的同學,為高校扶貧提供數(shù)據(jù)依據(jù)。
模型假設(shè)與問題分析
模型假設(shè)
三點假設(shè):
沒有同學使用自己的賬戶為他人墊付,每一筆消費均為本人所為。
在全部數(shù)據(jù)的60天內(nèi),認為消費總次數(shù)小于80次的為經(jīng)常點外賣的人,剔除他們,不認為屬于低消費人群。
不存在收費錯誤的情況。
數(shù)據(jù)清洗
剔除時間異常值

數(shù)據(jù)共計260多萬條條,從20年9月1日6時一直持續(xù)到20年10月30日19時。但其中有“9月31日”的數(shù)據(jù),我們將其刪除。

為了減少計算量,我們從200萬條數(shù)據(jù)里隨機選取20000條進行訓練,最終獲得兩個聚類簇,以及各個簇的最大最小值??紤]到數(shù)據(jù)選取的隨機性,本文將消費金額80作為異常值閾值,刪除所有消費金額大于80的數(shù)據(jù),保留下約98%的正常數(shù)據(jù)。

我們觀察消費價格后發(fā)現(xiàn),有少部分消費金額數(shù)據(jù)在1000甚至10000以上,這部分數(shù)據(jù)是異常數(shù)據(jù),我們采用密度聚類(DBSCAN)算法來尋找一個閾值進行劃分。


窗口與價位分類
窗口分類
對數(shù)據(jù)進行了Z-score標準化,以消除數(shù)據(jù)中的量綱差異,使得每個特征在模型中的影響程度相等。
繪制出標準化后的數(shù)據(jù)的SSE(Sum of Squared Errors)隨分類個數(shù)變化的肘形圖如下圖所示:

使用簇為4的k-means聚類算法對標準化后的數(shù)據(jù)進行聚類,并得到各個分類中心的經(jīng)過標準化后的均值和標準差及每個數(shù)據(jù)的所屬的簇(即標簽)
將標準化后的數(shù)據(jù)還原,并畫出平均消費價格和消費價格的方差與分類標簽的關(guān)系圖,如下圖所示:


價位分類
最終的聚類效果如下。根據(jù)每個簇的最大最小值,將消費分為低、中、高三個價位,分別界定為小于10.37元,10.37元到24.67元和大于24.67元。

低消費指數(shù)模型

我們選取下面7個自變量參與模型訓練:夜宵次數(shù),午飯金額,晚飯金額,下午茶金額,夜宵金額,中消費頻率,高消費頻率。然后,用戶的消費分類cluster變量將作為y標簽。
我們以70%的數(shù)據(jù)做訓練集,30%做測試集,建立SVM(支持向量機)分類模型,輸出測試數(shù)據(jù)的準確率、精確率、召回率和F1值,以及混淆矩陣熱力圖,效果如下所示:

訓練SVM模型后,我們獲得了權(quán)重和偏置項,如下表所示,后面計算概率矩陣時會用到這些參數(shù)。

低消費指數(shù)模型
簡單的說,RankGauss首先將該特征按照大小排序,計算出每個值的排名(排名從1開始);然后將排名除以n+1,其中n是該特征的樣本數(shù)量,得到一個0到1之間的比例因子;最后將比例因子作為標準正態(tài)分布的累積分布函數(shù)(CDF)的輸入,得到轉(zhuǎn)換后的數(shù)據(jù),如下表所示。

通過RankGauss標準化,可以看到,原本極小的數(shù)據(jù)也能轉(zhuǎn)化到10個(-3)數(shù)量級及以上,在保留了模型可解釋性和科學性的同時規(guī)范化了數(shù)據(jù),便于數(shù)據(jù)參與二次運算。 相較于其他標準化算法,只有RankGauss能做到將任意分布的數(shù)據(jù)映射到高斯分布,并且保留原始特征的順序關(guān)系,同時規(guī)范減小數(shù)據(jù)的數(shù)量級差異。
關(guān)于作者

在此對Wenyi Shen對本文所作的貢獻表示誠摯感謝,他在南京理工大學完成了數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)的學位,專注數(shù)據(jù)挖掘、數(shù)據(jù)分析領(lǐng)域。擅長Python、R、Excel、SPSSPRO。

最受歡迎的見解
1.PYTHON用戶流失數(shù)據(jù)挖掘:建立邏輯回歸、XGBOOST、隨機森林、決策樹、支持向量機、樸素貝葉斯模型和KMEANS聚類用戶畫像
2.R語言基于樹的方法:決策樹,隨機森林
3.python中使用scikit-learn和pandas決策樹
4.機器學習:在SAS中運行隨機森林數(shù)據(jù)分析報告
5.R語言用隨機森林和文本挖掘提高航空公司客戶滿意度
6.機器學習助推快時尚精準銷售時間序列
7.用機器學習識別不斷變化的股市狀況——隱馬爾可夫模型的應(yīng)用
8.python機器學習:推薦系統(tǒng)實現(xiàn)(以矩陣分解來協(xié)同過濾)
9.python中用pytorch機器學習分類預(yù)測銀行客戶流失