开始使用免费开始使用

模型选择

正则化和交叉验证都是进行模型选择的有力工具。正则化可以帮助防止过拟合,而交叉验证可以确保对模型进行恰当评估。在本练习中,您将把正则化与交叉验证结合起来,看看模型之间是否存在显著差异。这里您只计算精确率,不过也可以用同样的方法计算召回率和其他评估指标。

X_trainy_trainX_testy_test 已在您的工作区中可用。pandas 作为 pdnumpy 作为 np,以及 sklearn 也都可用。来自 sklearn.metricsprecision_score()recall_score(),以及来自 sklearn.model_selectionKFold()cross_val_score() 均已提供。

本练习是课程的一部分

用 Python 预测 CTR 的机器学习实战

查看课程

练习说明

  • 使用 n_splits 设置 4 折的 K 折交叉验证,并将其赋给 k-fold
  • 创建一个决策树分类器。
  • 使用 k_fold 运行交叉验证,并在给定的 max_depth 值下评估您的决策树模型的精确率与召回率。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Iterate over different levels of max depth and set up k-fold
for max_depth_val in [3, 5, 10]:
  k_fold = ____(____ = 4, random_state = 0, shuffle = True)
  clf = ____(____ = max_depth_val)
  print("Evaluating Decision Tree for max_depth = %s" %(max_depth_val))
  y_pred = clf.fit(____, ____).predict(____) 
  
  # Calculate precision for cross validation and test
  cv_precision = ____(
    ____, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')
  precision = ____(y_test, y_pred, average = 'weighted')
  print("Cross validation Precision: %s" %(cv_precision))
  print("Test Precision: %s" %(precision))
编辑并运行代码