Xây dựng các đường cong AUC
Thuật toán chọn biến tiến dần (forward stepwise) cung cấp một thứ tự tối ưu để thêm biến vào tập biến dự báo. Để quyết định điểm dừng chọn biến, bạn có thể vẽ các đường cong AUC cho train và test. Những đường cong này biểu diễn AUC của train và test khi dùng biến đầu tiên, hai biến đầu tiên, ba biến đầu tiên, … trong mô hình.
Trong bài tập này, bạn sẽ học cách vẽ các đường cong AUC đó. Phương thức auc_train_test để tính AUC đã được cài sẵn và có thể dùng như sau:
auc_train, auc_test = auc_train_test(variables, target, train, test)
trong đó variables là tập biến dùng cho mô hình hồi quy logistic, target là danh sách chứa tên biến mục tiêu, và train cùng test lần lượt là basetable train và test.
Các biến đã được sắp xếp theo thuật toán tiến dần được cung cấp trong danh sách variables. Bạn có thể xem trong console. Ngoài ra, ba danh sách trống đã được định nghĩa sẵn cho bạn:
auc_values_train, sẽ chứa các giá trị AUC trên train của mô hình ở mỗi vòng lặpauc_values_test, sẽ chứa các giá trị AUC trên test của mô hình ở mỗi vòng lặpvariables_evaluate, sẽ chứa các biến được đánh giá ở mỗi vòng lặp
Bài tập này là một phần của khóa học
Nhập môn Phân tích Dự đoán với Python
Hướng dẫn bài tập
- Lặp qua các biến.
- Ở mỗi vòng lặp, thêm biến kế tiếp trong
variablesvàovariables_evaluate. - Ở mỗi vòng lặp, tính AUC của train và test bằng phương thức
auc_train_test. Các DataFrametrainvàtestlần lượt chứa dữ liệu train và test. - Ở mỗi vòng lặp, thêm các giá trị tính được vào
auc_values_trainvàauc_values_test
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.
# Keep track of train and test AUC values
auc_values_train = []
auc_values_test = []
variables_evaluate = []
# Iterate over the variables in variables
for v in ____:
# Add the variable
variables_evaluate.append(____)
# Calculate the train and test AUC of this set of variables
auc_train, auc_test = ____(____, ["target"], ____, ____)
# Append the values to the lists
auc_values_train.append(____)
auc_values_test.append(____)
# Make plot of the AUC values
import matplotlib.pyplot as plt
import numpy as np
x = np.array(range(0,len(auc_values_train)))
y_train = np.array(auc_values_train)
y_test = np.array(auc_values_test)
plt.xticks(x, variables, rotation = 90)
plt.plot(x,y_train)
plt.plot(x,y_test)
plt.ylim((0.6, 0.8))
plt.show()