用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系統更大程度地挖掘大客戶價值
- 處理客戶小機問題[一則]
- 喚醒資料價值,惟客資料打造客戶經營數字化閉環 | 愛分析調研
- System State 轉儲分析案例一則
- Smartbi助你解決銀行高價值客戶流失難題
- 聚類分析-案例:客戶特徵的聚類與探索性分析聚類特徵
- IHSE KVM坐席管理系統應用案例價值探究與評價
- 8CRM客戶案例分享
- 免費OA辦公系統給客戶帶來什麼價值?
- IBM商業價值研究院:客戶忠誠度的祕密IBM
- SQLyog客戶端無法連線MySQL伺服器案例分析客戶端MySql伺服器
- Altair SimSolid無網格求解器客戶應用案例AISolid
- 資料洩露大事件 | 價值數十億美元客戶資料曝光事件
- 初創公司增長策略:不僅僅需要為客戶創造價值
- 門戶軟體的價值不在門戶本身
- 金融BI分析的價值
- 私域流量最佳化:如何利用 AIPL 模型洞察客戶生命週期價值AI模型
- 理解敏捷的價值觀和原則敏捷
- 修身養性、原則、模式、價值觀模式
- 用價值鏈分析軟體開發及雜感
- 客戶滿意度下降?是時候用大資料分析來改善客戶體驗了!大資料
- materialized view的fast和日誌分析和一則案例ZedViewAST
- 一則資料庫無法重啟的案例分析資料庫
- Python+pandas+matplotlib視覺化案例一則Python視覺化
- shell指令碼的一則簡單運用案例指令碼
- 客戶案例:敏捷轉型的二三事兒敏捷
- 如何做好價值流分析?
- Python socket的客戶端Python客戶端
- MT4客戶端通訊分析(一)——登入部分分析客戶端
- 展廳多媒體互動的應用價值分析
- CRM作用丨獲得有價值的商業洞見,與客戶建立穩定關係
- IBM攜手亞馬遜雲科技,共創"不可或缺"的客戶價值與體驗IBM亞馬遜
- 故障分析 | ClickHouse 叢集分散式 DDL 被阻塞案例一則分散式
- 一則資料庫無法啟動的奇怪案例分析資料庫