用決策樹做 CTR 預測

用 Python 透過機器學習預測 CTR

Kevin Huo

Instructor

決策樹

根據年齡與是否為學生來決定信用貸款的決策樹範例

  • 節點代表特徵
  • 分支代表依特徵做出的決策
  • 範例結果見下表:
  • 第一次分割依申請人的年齡
  • 青年組的第二次分割依是否為學生
  • 模型提供可解釋的啟發式規則
is_student loan
middle_aged 1
youth no 0
youth yes 1
用 Python 透過機器學習預測 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 透過機器學習預測 CTR

用 ROC 曲線評估

分類器的 ROC 曲線下面積示例

  • 真陽率(Y 軸)= #(分類器預測正、實際為正) / #(實際正例)
  • 假陽率(X 軸)= #(分類器預測正、實際為負) / #(實際負例)
  • 藍色虛線:基準 AUC 為 0.5
  • 目標是讓橘線(AUC)越接近 1 越好
用 Python 透過機器學習預測 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 透過機器學習預測 CTR

一起來練習吧!

用 Python 透過機器學習預測 CTR

Preparing Video For Download...