Bắt đầu ngayBắt đầu miễn phí

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ặp
  • auc_values_test, sẽ chứa các giá trị AUC trên test của mô hình ở mỗi vòng lặp
  • variables_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

Xem khóa học

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 variables vào variables_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 DataFrame traintest lầ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_trainauc_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()
Chỉnh sửa và Chạy Mã