1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Thiết kế quy trình Machine Learning bằng Python

Connected

Bài tập

Tối ưu ngưỡng phân loại

Bạn nghe nói giá trị mặc định 0.5 tối đa hóa accuracy về mặt lý thuyết, nhưng bạn muốn kiểm chứng trong thực tế. Vì vậy, bạn thử một loạt giá trị ngưỡng khác nhau để xem accuracy đạt được là bao nhiêu, từ đó xác định ngưỡng cho hiệu suất tốt nhất. Bạn lặp lại thí nghiệm này cho điểm F1. Liệu 0.5 có phải là ngưỡng tối ưu? Ngưỡng tối ưu cho accuracy và cho điểm F1 có giống nhau không? Hãy tự tìm câu trả lời! Bạn có sẵn một ma trận scores, thu được bằng cách chấm điểm dữ liệu kiểm thử. Nhãn ground truth cho dữ liệu kiểm thử cũng có sẵn dưới dạng y_test. Cuối cùng, hai hàm của numpy là argmin() và argmax() đã được nạp sẵn, lần lượt trả về chỉ số của giá trị nhỏ nhất và lớn nhất trong một mảng, cùng với các thước đo accuracy_score() và f1_score().

Hướng dẫn

100 XP
  • Tạo một dải giá trị ngưỡng bao gồm 0.0, 0.25, 0.5, 0.75 và 1.0.
  • Thông qua list comprehension lồng nhau, lưu các dự đoán cho mỗi giá trị ngưỡng trong dải trên. Nhớ rằng có thể lấy nhãn từ một ma trận điểm số với ngưỡng thr bằng [s[1] > thr for s in scores].
  • Duyệt qua danh sách đó và tính accuracy cho mỗi ngưỡng. Lặp lại cho điểm F1.
  • Dùng argmin() hoặc argmax() để tìm ngưỡng tối ưu cho accuracy và cho F1.