モデル評価

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

Kevin Huo

Instructor

適合率と再現率

  • 適合率: クリックによる広告費のROI

    • 低い適合率は、クリックで実質的なROIがほぼないことを意味
  • 再現率: 関連オーディエンスの特定

    • 低い再現率は、ROI機会の取り逃しを意味
  • 2つを異なる重みで評価するのが妥当な場合がある

    • 多くの企業は、低再現率よりも低適合率の回避を重視しがち
PythonでMachine Learningを使ってCTRを予測する

F-beta スコア

$$F_\beta = (1+\beta^2)\cdot\frac{\text{precision}\cdot\text{recall}}{(\beta^2 \cdot \text{precision}) + \text{recall}}$$

  • ベータ係数: 2指標の相対的重み付けを表す

    • ベータが0〜1なら適合率を小さくし重みを大きく、ベータ>1なら適合率を大きくし重みを小さくする
  • sklearnでの実装: fbeta_score(y_true, y_pred, beta=beta)

    • y_trueは真のラベル、y_predは予測ラベル
PythonでMachine Learningを使ってCTRを予測する

ROC AUC と適合率の比較

roc_auc = roc_auc_score(y_test, y_score[:, 1])

fpr = 1 - tn / (tn + fp)
precision = tp / (tp + fp)
  • 不均衡データでは: precisionが低くてもfprは低くなり得る
  • 例: TN=100、TP=10、FP=10 とする
fpr = 1 - 100 / (100 + 10) = 0.091
precision = tp / (tp + fp) = 0.5
  • 低FPRはROC曲線のAUCを高く見せうる。適合率が低くても同様。よって両方とF-beta scoreを見ることが重要
PythonでMachine Learningを使ってCTRを予測する

広告費のROI

  • 先の考え方と同様: コストcとリターンr

total_return = tp * r


total_spent = (tp + fp) * cost


roi = total_return / total_spent = (tp) / (tp + fp) (r / cost) = precision (r / cost)

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

演習に進みましょう!

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

Preparing Video For Download...