Tôi có một bộ dữ liệu với các lớp không cân bằng. Ba lớp chiếm khoảng 60% dữ liệu. Ngoài ra, tôi có các phân tách thử nghiệm khác nhau gây ra sự mất cân bằng. Ví dụ:
Tập xe lửa: nhãn_1 ... nhãn_n
Bộ kiểm tra: nhãn_1, nhãn_3, nhãn_9
Điều này có nghĩa là mặc dù tôi chỉ có 3 nhãn trong bộ thử nghiệm của mình, nhưng nó có khả năng được dự đoán là 1 trong n nhãn. Vì vậy, khi tôi sử dụng sklearn.metrics.precision_recall_fscore_support , tôi nhận được một ma trận có rất nhiều số không.
Vấn đề của tôi là tôi cần đạt điểm F trung bình trên tất cả các lớp, thay vì giá trị mỗi lớp. Tuy nhiên, chỉ lấy trung bình của ma trận được trả về từ hàm sklearn ở trên sẽ luôn có giá trị rất thấp vì có rất nhiều số không. Mặt khác, lấy trung bình trên các giá trị khác không cũng không có ý nghĩa gì với tôi vì tổng số dự đoán tiềm năng sẽ là tổng số lớp.
Có một cách tốt để lấy trung bình trong trường hợp này? Tôi đã thử sử dụng các tùy chọn trung bình vi mô, vĩ mô và có trọng số nhưng tôi không chắc cái nào đúng.
Bất cứ ai có thể xin vui lòng giúp tôi với điều này?