Chọn mô hình
Regularization và cross validation đều là các công cụ mạnh mẽ để chọn mô hình. Regularization giúp tránh overfitting, còn cross validation đảm bảo mô hình của bạn được đánh giá đúng cách. Trong bài này, bạn sẽ dùng regularization và cross validation cùng nhau và xem các mô hình có khác biệt đáng kể hay không. Bạn sẽ chỉ tính precision, dù rằng bạn có thể dễ dàng làm tương tự cho recall và các chỉ số đánh giá khác.
X_train, y_train, X_test, y_test đã có sẵn trong workspace. pandas là pd, numpy là np, và sklearn cũng đã sẵn sàng. precision_score() và recall_score() từ sklearn.metrics đều có sẵn, cũng như KFold() và cross_val_score() từ sklearn.model_selection.
Bài tập này là một phần của khóa học
Dự đoán CTR với Machine Learning trong Python
Hướng dẫn bài tập
- Thiết lập K-Fold cross validation với bốn phần chia bằng
n_splitsvà gán vàok-fold. - Tạo một mô hình decision tree classifier.
- Dùng
k_foldđể chạy cross validation và đánh giá precision và recall của mô hình decision tree với giá trịmax_depthđã cho.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))