您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么用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進行客戶價值分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。