決定木でのCTR予測

PythonでMachine Learningを使ってCTRを予測する

Kevin Huo

Instructor

決定木

年齢と学生ステータスに基づくクレジット与信の決定木例

  • ノードは特徴量を表す
  • 枝は特徴量に基づく分岐を表す
  • サンプルの結果は下表のとおり
  • 最初の分割は申請者の年齢
  • 若年層では、2回目の分割は学生かどうか
  • モデルは理解のためのヒューリスティックを提供
is_student loan
middle_aged 1
youth no 0
youth yes 1
PythonでMachine Learningを使ってCTRを予測する

学習と評価の実行

  • 作成: clf = DecisionTreeClassifier()
  • ロジスティック回帰同様、学習は clf.fit(X_train, y_train)、予測は clf.predict(X_test)

    array([0, 1, 1, ..., 1, 0, 1])
    
  • 確率出力は clf.predict_proba(X_test)

    array([0.2, 0.8], [0.4, 0.6] ..., [0.1, 0.9] [0.3, 0.7]])
    
  • 学習/評価データのランダム分割例(評価30%): train_test_split(X, y, test_size = .3, random_state = 0)

PythonでMachine Learningを使ってCTRを予測する

ROC曲線での評価

分類器のROC曲線下面積の例

  • 真陽性率(Y軸)= 正と予測し実際も正の件数 / 正例数
  • 偽陽性率(X軸)= 正と予測し実際は負の件数 / 負例数
  • 点線の青: ベースラインAUC 0.5
  • オレンジの線(AUC)は1に近いほど良い
PythonでMachine Learningを使ってCTRを予測する

ROC曲線のAUC

Y_score = clf.predict_proba(X_test)
fpr, tpr, thresholds = roc_curve(Y_test, Y_score[:, 1])
  • roc_curve() の入力: テストとスコア配列
roc_auc = auc(fpr, tpr)
  • auc() の入力: 偽陽性率と真陽性率の配列

  • モデルが高精度でCTRが低い場合は、広告メッセージやターゲット設定を見直すとよいでしょう

PythonでMachine Learningを使ってCTRを予測する

練習しましょう!

PythonでMachine Learningを使ってCTRを予測する

Preparing Video For Download...