分析後の最終成果物の作成
〇アタックリストの作成
・予想される定期預金キャンペーン申込率
・期待できる収益(利益×申込率)
・投資収益率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人を優先順に並べたアタックリストが作成できた。
〇予測モデルの改善案
-他のパラメータの調整もグリッドサーチなどを用いて行えば、改善の余地がある。