使用决策树进行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...