チャーン要因の特定と解釈

Pythonで学ぶマーケティングのための機械学習

Karolis Urbonas

Head of Analytics & Science, Amazon

決定木ルールの可視化

from sklearn import tree
import graphviz

exported = tree.export_graphviz( decision_tree=mytree, out_file=None, feature_names=cols, precision=1, class_names=['Not churn','Churn'], filled = True)
graph = graphviz.Source(exported) display(graph)
Pythonで学ぶマーケティングのための機械学習

決定木チャートの解釈

決定木の可視化

Pythonで学ぶマーケティングのための機械学習

ロジスティック回帰の係数

  • ロジスティック回帰はベータ係数を返す
  • 係数は、特徴量が1増えるとチャーンの対数オッズがどれだけ変化するかを示す

ロジスティック回帰モデル

Pythonで学ぶマーケティングのための機械学習

ロジスティック回帰係数の取得

  • 係数は学習済みLogistic Regressionの.coef_で取得可能
    logreg.coef_
    
array([[ 0.        ,  0.09784772,  0.        , -0.03935476, -0.82068131,
        -0.41231806, -0.14319622, -0.01746504, -0.41830733,  0.        ,
         0.        ,  0.07138468,  0.        ,  0.        ,  0.        ,
         0.        , -0.41424363, -0.59539021,  0.        ,  0.18846525,
         0.        , -0.90766135,  0.90151342,  0.        ]])
Pythonで学ぶマーケティングのための機械学習

ロジスティック回帰係数の変換

  • 対数オッズは直感的に分かりにくい
  • 解決策: 係数の指数を計算する
  • これで、特徴量が1増えるとオッズがどれだけ変化するかが分かる
coefficients = pd.concat([pd.DataFrame(train_X.columns),
               pd.DataFrame(np.transpose(logit.coef_))], 
               axis = 1)
coefficients.columns = ['Feature', 'Coefficient']

coefficients['Exp_Coefficient'] = np.exp(coefficients['Coefficient'])
coefficients = coefficients[coefficients['Coefficient']!=0] print(coefficients.sort_values(by=['Coefficient']))
Pythonで学ぶマーケティングのための機械学習

変換後係数の意味

ロジスティック回帰の係数

Pythonで学ぶマーケティングのための機械学習

Passons à la pratique !

Pythonで学ぶマーケティングのための機械学習

Preparing Video For Download...