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

Xác định hệ số phạt L1 tối ưu

Bây giờ bạn sẽ tinh chỉnh tham số C cho L1 regularization để tìm giá trị giúp giảm độ phức tạp mô hình mà vẫn duy trì các chỉ số hiệu năng tốt. Bạn sẽ chạy một vòng lặp for qua các giá trị C khả dĩ, xây dựng các mô hình logistic regression tương ứng và tính các chỉ số hiệu năng.

Một list C đã được tạo với các giá trị khả dĩ. Mảng l1_metrics được tạo với 3 cột: cột đầu là các giá trị C, hai cột sau là chỗ giữ chỗ cho số lượng hệ số khác 0 và điểm recall của mô hình. Các đặc trưng đã được chuẩn hóa và biến mục tiêu đã được nạp thành train_X, train_Y cho huấn luyện, và test_X, test_Y cho kiểm tra.

Cả numpypandas đã được nạp lần lượt là nppd, cùng với hàm recall_score từ sklearn.

Bài tập này là một phần của khóa học

Machine Learning cho Marketing với Python

Xem khóa học

Hướng dẫn bài tập

  • Chạy vòng lặp for trên phạm vi từ 0 đến độ dài của list C.
  • Với mỗi ứng viên C, khởi tạo và fit Logistic Regression, rồi dự đoán churn trên dữ liệu kiểm tra.
  • Với mỗi ứng viên C, lưu số lượng hệ số khác 0 và điểm recall vào cột thứ hai và thứ ba của l1_metrics.
  • Tạo một pandas DataFrame từ l1_metrics với các tên cột phù hợp.

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.

# Run a for loop over the range of C list length
for index in ___(0, len(C)):
  # Initialize and fit Logistic Regression with the C candidate
  logreg = ___(penalty='l1', C=C[___], solver='liblinear')
  logreg.fit(___, train_Y)
  # Predict churn on the testing data
  pred_test_Y = logreg.___(test_X)
  # Create non-zero count and recall score columns
  l1_metrics[index,1] = np.___(logreg.coef_)
  l1_metrics[index,2] = recall_score(___, pred_test_Y)

# Name the columns and print the array as pandas DataFrame
col_names = ['C','Non-Zero Coeffs','Recall']
print(pd.DataFrame(l1_metrics, columns=___))
Chỉnh sửa và Chạy Mã