Pythonで学ぶカスタマーセグメンテーション
Karolis Urbonas
Head of Data Science, Amazon
3つの指標に基づく行動型顧客セグメンテーション:
RFM値のグループ化方法:
ここではパーセンタイルによるグループ化を実装します。
パーセンタイル算出の手順:
8件のCustomerIDとランダムに算出したSpendのデータ。
spend_quartiles = pd.qcut(data['Spend'], q=4, labels=range(1,5))data['Spend_Quartile'] = spend_quartilesdata.sort_values('Spend')
# 連番ラベルを作成 r_labels = list(range(4, 0, -1))# 四分位でグループ分け recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels)# 新しい列を作成 data['Recency_Quartile'] = recency_quartiles# 最新性を小さい順に並べ替え data.sort_values('Recency_Days')
ご覧のとおり、四分位ラベルは逆になります。より最近の顧客ほど価値が高いからです。
用途に応じて、文字列など任意の値のリストを定義できます。
# 文字列ラベルを作成 r_labels = ['Active', 'Lapsed', 'Inactive', 'Churned']# 四分位でグループ分け recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels) # 新しい列を作成 data['Recency_Quartile'] = recency_quartiles # 小さい順に並べ替え data.sort_values('Recency_Days')
各四分位にカスタムラベルを割り当て
Pythonで学ぶカスタマーセグメンテーション