分析後の最終成果物の作成

〇アタックリストの作成

・予想される定期預金キャンペーン申込率
・期待できる収益(利益×申込率)
・投資収益率ROI(期待できる収益/費用×100)
を顧客ごとに整理し、投資収益率が高い順に並び変えたものを作成。

<初期数値>
・マーケティング費用(通信費、オペレーター人件費)
  →1顧客当たり約300円
・定期預金を申し込んでくれた時の利益
  →1顧客当たり約2,000円
<方向性>
評価用データ=今年のデータ(未知)という前提で、最適なパラメータで学習した決定木モデルを使い、評価用データに割り当てられた顧客に対する定期預金キャンペーンの申込率の予測結果を算出し、それをもとにアタックリストを作成。
# 申込率を含む顧客リストの作成
  #(indexは評価データのインデックスを。データ内容は、columnは"cvr"を。データはpred_3yを。
  #pred_y3は申込率の予測結果 
customer_list = pd.DataFrame(index=test_y.index, data={"cvr":pred_y3})

# 期待できる収益の計算
customer_list['return'] = 2000 * customer_list['cvr']

# 期待できるROIの計算
customer_list['ROI'] = customer_list['return'] / 300 * 100

# ROIで降順に並べ替え
 #「DataFrame.sort_values("並び替えの軸となるcolumn",ascending=True or False)
sorted_customer_list = customer_list.sort_values('ROI', ascending=False)

# ROIが100%以上の顧客idを切り出したアタックリストの作成
attack_list = sorted_customer_list[sorted_customer_list['ROI'] >= 100]

# アタックリストの行数・列数の表示
print( attack_list.shape )

# アタックリストの先頭5行の表示
print( attack_list.head() )
(1123, 3) 

      cvr  return         ROI 

id                             

6440   1.0  2000.0  666.666667 

18175  1.0  2000.0  666.666667 

10552  1.0  2000.0  666.666667 

18304  1.0  2000.0  666.666667 

8860   1.0  2000.0  666.666667 

・ROIが100%以上見込める顧客1123人を優先順に並べたアタックリストが作成できた。


〇予測モデルの改善案
 -他のパラメータの調整もグリッドサーチなどを用いて行えば、改善の余地がある。



この記事が気に入ったらサポートをしてみませんか?