Tôi có dữ liệu học tập bao gồm ~ 45k mẫu, mỗi mẫu có 21 tính năng. Tôi đang cố gắng đào tạo một trình phân loại rừng ngẫu nhiên trên dữ liệu này, được gắn nhãn cho 3 lớp (-1, 0 và 1). Các lớp ít nhiều bằng nhau về kích thước của chúng.
Mô hình phân loại rừng ngẫu nhiên của tôi đang sử dụng gini
làm tiêu chí chất lượng phân chia của nó, số lượng cây là 10 và tôi không giới hạn độ sâu của cây.
Hầu hết các tính năng đã cho thấy tầm quan trọng không đáng kể - giá trị trung bình là khoảng 5%, một phần ba trong số đó có tầm quan trọng 0, một phần ba trong số đó có tầm quan trọng cao hơn giá trị trung bình.
Tuy nhiên, có lẽ thực tế nổi bật nhất là điểm oob (ngoài túi): ít hơn 1% một chút. Nó khiến tôi nghĩ rằng mô hình thất bại, và thực sự, thử nghiệm mô hình trên một bộ kích thước độc lập mới ~ 40k, tôi đã đạt được số điểm 63% (nghe có vẻ tốt), nhưng kiểm tra sâu hơn về ma trận nhầm lẫn đã cho tôi thấy rằng mô hình chỉ thành công cho lớp 0 và thất bại trong khoảng 50% trường hợp khi quyết định giữa 1 và -1.
Đầu ra của Python được đính kèm:
array([[ 7732, 185, 6259],
[ 390, 11506, 256],
[ 7442, 161, 6378]])
Điều này là tự nhiên bởi vì lớp 0 có các thuộc tính đặc biệt giúp dễ dự đoán hơn nhiều. Tuy nhiên, có đúng là điểm oob mà tôi tìm thấy đã là một dấu hiệu cho thấy mô hình không tốt? Điểm oob tốt cho rừng ngẫu nhiên là gì? Có một số định luật giúp xác định xem một mô hình là "tốt" hay không, chỉ sử dụng điểm oob hoặc kết hợp với một số kết quả khác của mô hình?
Chỉnh sửa: sau khi xóa dữ liệu xấu (khoảng một phần ba dữ liệu), các nhãn nhiều hơn hoặc ít hơn 2% cho 0 và 49% cho mỗi -1 / + 1. Điểm oob là 0,011 và điểm trên dữ liệu kiểm tra là 0,49, với ma trận nhầm lẫn hầu như không thiên về lớp 1 (khoảng 3/4 dự đoán).
scikit
đó oob_score
là một điểm số, nghĩa là một thước đo của sự đồng ý. Tôi không thể tìm thấy nó tài liệu, tuy nhiên.