背景:電商企業(yè)沉積的客戶交易數(shù)據(jù)繁雜。需要挖掘出不同用戶群體的特征與價值,再針對不同群體提供不同的營銷策略。
數(shù)據(jù):某電商企業(yè)客戶近期購買的數(shù)據(jù)。包含客戶基本信息,商品信息,交易記錄。
目標:分析客戶交易數(shù)據(jù),挖掘出高價值客戶,進行精準營銷,降低營銷成本。

【一】分析思路
RFM模型:是一種衡量客戶價值和客戶創(chuàng)利能力的重要工具和手段。該機械模型通過一個客戶的近期購買行為、購買的總體頻率以及花了多少錢三項指標來描述該客戶的價值狀況。

RFM分析前提:
1.最近有過交易行為的客戶,再次發(fā)生交易的可能性要高于最近買有交易行為的客戶;
2.交易頻率較高的客戶比交易頻率較低的客戶,更有可能再次發(fā)生交易行為;
3.過去所有交易總金額較多的客戶,比交易總金額較少的客戶,更有消費積極性。

根據(jù)劃分后的情況,可以進行精確營銷,以提高
【二】數(shù)據(jù)處理
import numpy
import pandas as pd
data = pd.read_csv('D:\Transaction\2017\data0023.csv'
提取數(shù)據(jù)后處理三要素:
1>.近度(R):最后購買時間至觀察時間
2>.頻度(R):時間內(nèi)用戶購買的次數(shù)
3>.額度(R):時間內(nèi)客戶總共消費的金額
import time
data['DateDiff'] = pandas.to_datetime('today') - data['DealDateTime']
R = data.groupby(by=['CustomerID'])['DateDiff'].agg({'RecencyAgg': numpy.min})
F = data.groupby(by=['CustomerID'])['OrderID'].agg({'FrequencyAgg': numpy.size})
M = data.groupby(by=['CustomerID'])['Sales'].agg('MonetaryAgg': numpy.sum})
【三】Spss分析
【三】python實現(xiàn)
1> 建模數(shù)據(jù)處理
單獨提取數(shù)據(jù)表中recency,frequencymonetary和monetary三個字段進行聚類。首先轉(zhuǎn)化為數(shù)組。
#轉(zhuǎn)化為數(shù)組
rfm_new = np.array(rfm[['frequency','monetary','recency']])
#設(shè)置隨機數(shù)
seed=9
2> 建立K—Means模型
from sklearn.cluster import KMeans
clf=KMeans(n_clusters=8,random_state=seed)
clf=clf.fit(rfm_new)
3> RFM擬合
完成后查看K—Means聚類后的8個質(zhì)心點的值
clf.cluster_centers_
在原始數(shù)據(jù)表中對每個用戶進行聚類結(jié)果標記。這樣我們就可以知道每個用戶ID在RFM模型中所屬的類別。
#對原數(shù)據(jù)表進行類別標記
rfm['label']= clf.labels_
#查看標記后的數(shù)據(jù)
rfm.head()
#計算每個類別的數(shù)據(jù)量
c=rfm["label"].value_counts()

【四】總結(jié)&思考
http://bluewhale.cc/2018-02-11/use-python-to-create-rfm-model.html