0
0

Pythonを使ったRFMを使用して顧客価値と製品価値を評価する

Last updated at Posted at 2024-04-22

1.RFM分析を使用して顧客の価値を判断する

RFMは、顧客の活動度と取引金額の貢献に基づいて、顧客の価値を細分化する方法を指します。主に精緻な運営、ユーザー層の分析、ユーザーメンバーシップシステムの構築などに応用されます。

最近の消費(Recency)
消費頻度(Frequency)
消費金額(Monetary)

なぜユーザー層を作るのか、それは異なるユーザー群が異なる価値、異なる需要、異なるドライブを持っているからです。ユーザー層を作ることでリソースの配置を最適化し、運営のリターンを向上させることができます。

R F M ユーザータイプ
一般的な価値ユーザー
重要な価値ユーザー
一般的な開発ユーザー
重要な開発ユーザー
一般的な保持ユーザー
重要な保持ユーザー
一般的な引き留めユーザー
重要な引き留めユーザー

例:

image.png


bins = rfm.最近一回の消費.quantile(q=np.linspace(0,1,6),interpolation='nearest')  
bins[0] =0  
labels =[5, 4, 3, 2, 1]  
R1 = pd.cut(rfm.最近一回の消費,bins,labels=labels);
bins = rfm.消費頻度.quantile(q=np.linspace(0,1,6),interpolation='nearest')  
bins[0]=0 
labels=[1,2,3,4,5] 
F1 = pd.cut(rfm.消費頻度,bins,labels=labels);
bins = rfm.消費金額.quantile(q=np.linspace(0,1,6),interpolation='nearest')  
bins[0]=0  
labels=[1, 2, 3, 4, 5]  
M1 = pd.cut(rfm.消費金額,bins,labels=labels);
rfm['R1']=R1  
rfm['F1']=F1  
rfm['M1']=M1
rfm.head()

image.png

bins = rfm.RFM.quantile(q=[0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1],interpolation='nearest')  
bins[0] =0
labels =['顧客離反','一般維持顧客顧客','一般発展顧客','ポテンシャル顧客','重要な離反防止顧客','重要維持顧客','重要発展顧客','重要価値顧客']
rfm['ユーザー層分け'] = pd.cut(rfm.RFM,bins,labels=labels)


rfm=rfm.rename(columns={'最近一回の消費':'last_sale_day','消費頻度':'sale_frq','消費金額':'sale_amt','ユーザー層分け':'customer_classification',})

image.png

このように、私たちはPythonを用いて数万人の顧客をFRMに基づいてユーザーレベルに分け、対応するマーケティング戦略の差別化活動を行うことができます。

image.png

2.RFM分析を使用して製品価値を判断する

RFM1M2モデルを使用する

具体的な実際のビジネスにおいて、スコアリングの範囲をどのように定義するかは、具体的なビジネスに応じて柔軟に定める必要があり、統一された基準はありません。

  • 関連するパッケージのインポート。

  • データのインポート
    image.png

  • データクレンジング

  • RFM指標の構築
    R-Recency 最後にベストセラーリストに出現してから現時点までの日数
    F-Frequency リスト掲載回数
    M1-トップ10に入った回数
    M2-最近3日間でトップ10に入った回数

  • RFMのスコア付けとラベルの描画

運用ニーズに基づくスコア付け 最後にランクイン-R ランクイン回数-F トップ10入り回数-M1 最近3日間でのトップ10入り回数-M2
1 80日以上 20回未満 5回未満 1回
2 30-80日 20-40回 5-20回 2回
3 15-30日 40-60回 20-60回 3回
4 3-15日 60-80回 60-80回
5 3日以内 85回以上 85回以上
rfm['R_value']=rfm['R'].apply(lambda x:'' if x> rfm['R'].mean() else '')
rfm['F_value']=rfm['F'].apply(lambda x:'' if x> rfm['F'].mean() else '')
rfm['M1_value']=rfm['M1'].apply(lambda x:'' if x> rfm['M1'].mean() else '')
rfm['M2_value']=rfm['M2'].apply(lambda x:'' if x> rfm['M2'].mean() else '')
rfm['rfm_value']=rfm['R_value']+rfm['F_value']+rfm['M1_value']+rfm['M2_value']

rfm

image.png

異なるカテゴリには異なるタグを付け、異なるタグは異なる製品タイプを意味し、それは異なる対応策略を意味します。

層別化ルール

# 分层规则
rfm2cat = {'高高高高':'竞合商品を持続的に注視する',
'高高低高':'旧製品を重点的に調査する',
'高低高高':'新製品を重点的に調査する',
'高高高低':'旧製品を重点的に維持する',
'低低低高':'新製品を一般的に調査する',
'高低低高':'新製品を一般的に調査する',
'低高高低':'旧製品を一般的に調査する',
'高高低低':'旧製品を一般的に注視する',
'低高低低':'旧製品を一般的に注視する',}

截屏2024-04-23 00.33.36.png

rfm.to_csv('rfm.csv',encoding='gbk')
  • このカテゴリーに基づいて、私たちは異なるマーケティング戦略ことができます。例えば:

  • 竞合商品を持続的に注視する('高高高高'):私たちは競争商品の動向を持続的に注視し、その長所や革新的な部分を分析することで、私たちは学び、改善することができます。また、市場のトレンドと消費者の需要の変化にも密接に注意を払い、私たちの製品と戦略を適時に調整する必要があります。

  • 旧製品を重点的に調査する('高高低高'):旧製品については、その性能とユーザーフィードバックを理解するために深く調査する必要があります。これは、製品の性能とユーザー満足度を向上させるための改善点を見つけるのに役立ちます。

  • 新製品を重点的に調査する('高低高高'):新製品については、市場の需要と競争状況を理解するために、深い市場調査を行う必要があります。これは、効果的な市場推進戦略を策定し、市場シェアを迅速に獲得するのに役立ちます。

  • 旧製品を一般的に調査する('低高高低','高高低低','低高低低'):これらの製品については、市場でのパフォーマンスと競争状況を理解するために、一般的な調査を行うことができます。調査の結果に基づいて、私たちは製品戦略と市場戦略を調整することができます。

  • 新製品を一般的に調査する('低低低高','高低低高'):これらの新製品については、市場の反応と潜在的な競争状況を理解するために、一般的な市場調査を行うことができます。調査の結果に基づいて、私たちは製品設計と市場戦略を調整することができます。

このような戦略を通じて、私たちは製品をより効果的に管理し、異なるタイプの製品に対して適切なマーケティング戦略を実施することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0