用python客戶價值分析案例一則
一個完整的資料分析專案由如下幾個步驟組成:
1)資料獲取:分為本地文字檔案、資料庫連結、爬蟲技術等方式獲取資料;
2 ) 資料儲存 : 存到本文字檔案、資料庫、分散式檔案系統等;
3)資料預處理:據經驗,佔80%的工作量。可以使用Numpy和Pandas這兩個工具庫;
4)建模與分析:這一階段首先要清楚資料的結構,結合專案需求來選取模型,常見的資料探勘模型有如下圖所示:
該階段常用工具庫分為如下兩個:
(1)scikit-learn-適用Python實現的機器學習演算法庫。scikit-learn可以實現資料預處理、分類、迴歸、降維、模型選擇等常用的機器學習演算法。
(2)Tensorflow-適用於深度學習且資料處理需求不高的專案。
5)視覺化分析:Python目前主流的視覺化工具有Matplotlib、Seaborn、Pyecharts等。
在整個資料分析流程,無論是資料提取、資料預處理、資料建模和分析,還是資料視覺化,Python目前已經可以很好地支援我們的資料分析工作。有了python入門基礎後,我們接下來我們以“航空公司客戶價值分析為例”,體驗簡要實際分析過程。
假設資料是之前已將採集或記錄好的,那我們從將資料匯入和預處裡開始。
1 、缺失及異常數值的處理,程式碼如下 :
import numpy as np
import pandas as pd
airline_data = pd.read_csv(' .. /data/air_data.csv', encoding='gb18030') #匯入航空資料
print('原始資料的形狀為:',airline_data.shape)
## 去除票價為空的記錄
exp1 = airline_data["SUM_YR_1"].notnull()
exp2 = airline_data["SUM_YR_2"].notnull()
exp = exp1 & exp2
airline_notnull = airline_data.loc[exp,:]
print('刪除缺失記錄後資料的形狀為:',airline_notnull.shape)
#只保留票價非零的,或者平均折扣率不為0且總飛行公里數大於0的記錄。
index1 = airline_notnull['SUM_YR_1'] != 0
index2 = airline_notnull['SUM_YR_2'] != 0
index3 = (airline_notnull['SEG_KM_SUM']> 0) & \
(airline_notnull['avg_discount'] != 0)
airline = airline_notnull[(index1 | index2) & index3]
print('刪除異常記錄後資料的形狀為:',airline.shape)
2、 選取並構建LRFMC模型的特徵
## 選取需求特徵
airline_selection = airline[["FFP_DATE","LOAD_TIME",
"FLIGHT_COUNT","LAST_TO_END",
"avg_discount","SEG_KM_SUM"]]
## 構建L特徵
L = pd.to_datetime(airline_selection["LOAD_TIME"]) - \
pd.to_datetime(airline_selection["FFP_DATE"])
L = L.astype("str").str.split().str[0]
L = L.astype("int")/30
## 合併特徵
airline_features = pd.concat([L, airline_selection.iloc[:,2:]],axis = 1)
print('構建的LRFMC特徵前5行為:\n',airline_features.head())
3、標準化LRFMC模型的特徵
from sklearn.preprocessing import StandardScaler
data = StandardScaler().fit_transform(airline_features)
np.savez(' ../data /airline_scale.npz',data)
print('標準化後LRFMC五個特徵為:\n',data[:5,:])
以上三段程式碼我們歸結為資料預處理,從這個階段可以看出,其中最重要環節是“選取需求特徵“,因此分析前提是要明確需求,需求調研和選取特徵是我們所有工作的根本。所以我們還需懂得領域知識或由這個方面的人員或領域專家協助分析工作。標準化後,另存一份,一遍後續進行各類測試時,避免所有資料從頭再來。
用某種演算法,對客戶資料進行客戶分群,如下航空客戶價值分析K-Means聚類分析程式碼:
4、客戶價值分析K-Means聚類分析程式碼
import numpy as np
import pandas as pd
from sklearn.cluster import KMeans #匯入kmeans演算法
airline_scale = np.load(' ../data /airline_scale.npz')['arr_0']
k = 5 ## 確定聚類中心數
#構建模型
kmeans_model = KMeans(n_clusters = k,n_jobs=4,random_state=123)
fit_kmeans = kmeans_model.fit(airline_scale) #模型訓練
kk=kmeans_model.cluster_centers_ #檢視聚類中心
kmeans_model.labels_ #檢視樣本的類別標籤
kk=kmeans_model.cluster_centers_ #檢視聚類中
cc_exp = np.savetxt(' ../data /renwu/cc.txt',kk,fmt="%.18e")
cc.txt 檔案內容如下:
[[ 0.05184321 -0.22680493 -0.00266815 2.19136467 -0.23125594]
[-0.31368082 -0.57402062 1.68627205 -0.1733275 -0.53682451]
[ 0.48333235 2.48322162 -0.7993897 0.30863251 2.42474345]
[-0.7002121 -0.16114387 -0.41489162 -0.25513359 -0.16095881]
[ 1.16067608 -0.08691922 -0.37722423 -0.15590586 -0.09484481]]
#統計不同類別樣本的數目
r1 = pd.Series(kmeans_model.labels_).value_counts()
print('最終每個類別的數目為:\n',r1)
3 24659
4 15740
1 12125
2 5336
0 4184
將以上資料結合特徵屬性、領域知識進行分析後聚類結果如下。其中L代表入會時間,R代表最近乘機距進的時間長度,F代表飛行次數,M代表總飛行歷程,C代表平均折扣係數。
從以上案例可以看出,一個資料分析案例中,資料採集和預處理按70%-80%左右工作量或時間。資料準備好了後的重點是模型和訓練階段,該階段程式碼量不多但需要懂得什麼演算法適合什麼場景,選擇統計學演算法還是機器學習類演算法,也是考研一個資料分析是內功的階段。選擇對了合適的演算法挖掘其中價值有很大的幫助。最後階段領域知識綜合應用和分析,當然領域知識的掌握或領域專家的參與貫穿到整個分析過程,回過頭來還是明確分析需求是重中之重。
在學習資料探勘的過程中,我們也體會到演算法很多,專門學習也需要較長的時間。根據個人的體會,如果不再是學生是階段,正確學習方法也許是先明確需求,根據演算法用途再確定合適的演算法,接下來就只針對該演算法深入學習研究並應用。
參考資料:
Python資料分析與應用 黃紅梅、張良均 主編 中國工信出版集團和人民郵電出版社
https://mp.weixin.qq.com/s/krKpGus-2uB5TqfrLZRh0A
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-2656395/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於R語言的航空公司客戶價值分析R語言
- 客戶管理怎麼做才能使CRM如何挖掘客戶價值?
- CRM客戶關係管理系統的價值
- 利用CRM系統更大程度地挖掘大客戶價值
- 想找準客戶需求?先弄清企業的價值要素
- 喚醒資料價值,惟客資料打造客戶經營數字化閉環 | 愛分析調研
- 聚類分析-案例:客戶特徵的聚類與探索性分析聚類特徵
- Smartbi助你解決銀行高價值客戶流失難題
- Altair SimSolid無網格求解器客戶應用案例AISolid
- IHSE KVM坐席管理系統應用案例價值探究與評價
- 8CRM客戶案例分享
- 一個高顏值Flutter版WanAndroid客戶端FlutterNaNAndroid客戶端
- Python+pandas+matplotlib視覺化案例一則Python視覺化
- 免費OA辦公系統給客戶帶來什麼價值?
- 資料洩露大事件 | 價值數十億美元客戶資料曝光事件
- 客戶滿意度下降?是時候用大資料分析來改善客戶體驗了!大資料
- 理解敏捷的價值觀和原則敏捷
- 金融BI分析的價值
- Python socket的客戶端Python客戶端
- 用價值鏈分析軟體開發及雜感
- 私域流量最佳化:如何利用 AIPL 模型洞察客戶生命週期價值AI模型
- 故障分析 | ClickHouse 叢集分散式 DDL 被阻塞案例一則分散式
- 掙值分析-PythonPython
- 客戶案例:敏捷轉型的二三事兒敏捷
- 展廳多媒體互動的應用價值分析
- 如何做好價值流分析?
- 基於價值流DevSecOps效能案例介紹dev
- 故障分析 | MySQL 異地從庫複製延遲案例一則MySql
- 什麼是NPS 客戶淨推薦值?
- Redis客戶端選型再分析Redis客戶端
- 如何最大化客戶生命週期價值?APMDR 模型在袋鼠雲的落地實踐模型
- CRM作用丨獲得有價值的商業洞見,與客戶建立穩定關係
- 數字化勞動力:數字員工激發客戶體驗關鍵價值
- 數字化轉型的目的是給服裝企業帶來價值(顧客價值和企業價值)
- 醫療器械ERP的價值分析
- [提問交流]用onethink做服務,給ajax客戶端呼叫的時候,為何客戶端只第一次獲得到值,之後都是空值,這是為什麼?客戶端
- AMDU資料抽取案例一則
- 【JUC】7-CompletableFutrue的應用 大廠案例分析 -電商比價