Đào tạo Độ chính xác vs Kiểm tra Độ chính xác vs Ma trận nhầm lẫn


11

Sau khi tôi phát triển mô hình dự đoán của mình bằng Rừng ngẫu nhiên, tôi nhận được các số liệu sau:

        Train Accuracy ::  0.9764634601043997
        Test Accuracy  ::  0.7933284397683713
         Confusion matrix  [[28292  1474]
                            [ 6128   889]]

Đây là kết quả từ mã này:

  training_features, test_features, training_target, test_target, = train_test_split(df.drop(['bad_loans'], axis=1),
                                                  df['target'],
                                                  test_size = .3,
                                                  random_state=12)
clf = RandomForestClassifier()
trained_model = clf.fit(training_features, training_target)
trained_model.fit(training_features, training_target)
predictions = trained_model.predict(test_features)      

Train Accuracy: accuracy_score(training_target, trained_model.predict(training_features))
Test Accuracy: accuracy_score(test_target, predictions)
Confusion Matrix: confusion_matrix(test_target, predictions)

Tuy nhiên tôi đang có một chút nhầm lẫn để giải thích và giải thích các giá trị này.

Chính xác thì 3 biện pháp này cho tôi biết gì về mô hình của tôi?

Cảm ơn!


Để rõ ràng, ở đây ma trận nhầm lẫn của bạn (và nói chung) khi nó được báo cáo dựa trên dữ liệu thử nghiệm. Bởi vì bạn có thể có nó ngay cả đối với dữ liệu đào tạo mà bạn đã xây dựng chế độ trên.
TwinPenguins

Tôi có một số nghi ngờ để tính toán các biện pháp này. Tại sao cho tàu chính xác đặt: (training_target, trained_model.predict (training_features) và không (training_target, trained_model.predict (test_target)?
Pedro Alves

Độ chính xác chỉ dành cho lớp 1 là 77/94?
Pravin

Câu trả lời:


19

Định nghĩa

  • Độ chính xác: Số lượng phân loại chính xác / tổng số lượng phân loại.
  • Độ chính xác của tàu: Độ chính xác của một mô hình trên các ví dụ được xây dựng trên.
  • Độ chính xác kiểm tra là độ chính xác của một mô hình trên các ví dụ mà nó chưa từng thấy.
  • Ma trận nhầm lẫn: Một bảng của lớp dự đoán (thường là theo chiều dọc) so với lớp thực tế (do đó theo chiều ngang).

Quá mức

Những gì tôi sẽ làm cho kết quả của bạn là mô hình của bạn đang quá mức . Bạn có thể nói rằng từ sự khác biệt lớn về độ chính xác giữa kiểm tra và độ chính xác của đào tạo. Quá mức có nghĩa là nó đã học các quy tắc cụ thể cho tập tàu, những quy tắc đó không khái quát tốt ngoài tập tàu.

Ma trận nhầm lẫn của bạn cho chúng tôi biết bao nhiêu là quá mức, bởi vì lớp lớn nhất của bạn chiếm hơn 90% dân số. Giả sử rằng bộ kiểm tra và bộ huấn luyện của bạn có phân phối tương tự, bất kỳ mô hình hữu ích nào cũng sẽ phải đạt điểm chính xác hơn 90%: Mô hình 0R đơn giản sẽ. Mô hình của bạn đạt điểm dưới 80% trong tập kiểm tra.

Nhìn sâu vào ma trận nhầm lẫn

Nếu bạn nhìn vào ma trận nhầm lẫn tương đối (tính theo tỷ lệ phần trăm) thì nó sẽ giống như thế này:

               Actual    TOT
               1    2
Predicted 1 | 77% | 4% | 81%  
Predicted 2 | 17% | 2% | 19%
TOT         | 94% | 6% |

Bạn có thể suy ra từ tổng số trong hàng đầu tiên mà mô hình của bạn dự đoán Lớp 1 81% thời gian, trong khi sự xuất hiện thực tế của Lớp 1 là 94%. Do đó mô hình của bạn đang đánh giá thấp lớp này. Nó có thể là trường hợp nó học các quy tắc cụ thể (phức tạp) trên tập tàu, hoạt động chống lại bạn trong tập kiểm tra.

Nó cũng có thể là đáng chú ý là mặc dù âm tính giả của lớp 1 (17% -point, dòng 2, cột 1)) đang làm tổn thương hiệu suất tổng thể của bạn nhất, âm tính giả của Class 2 (4% -point, dòng 1 cột 2) thực sự phổ biến hơn đối với tổng dân số của các lớp tương ứng (94%, 6%). Điều này có nghĩa là mô hình của bạn rất tệ trong việc dự đoán Lớp 1 , nhưng thậm chí còn tệ hơn khi dự đoán Lớp 2 . Độ chính xác chỉ dành cho Class 1 là 77/99 trong khi độ chính xác cho Class 2 là 2/6.


1
Bình chọn cho câu trả lời tốt. Có thể cho các mục đích giáo dục sẽ tốt hơn nếu bạn có thể giải thích "mức độ quá mức" dựa trên các yếu tố ma trận nhầm lẫn thực tế. Tôi cũng tò mò tìm hiểu thêm.
TwinPenguins

1
Tôi đã thêm một cái nhìn sâu hơn, cho tôi biết nếu đây là những gì bạn đang tìm kiếm.
S van Balen

Vì vậy, ví dụ khi tôi nhận được sự nhầm lẫn này: Độ chính xác của tàu :: 0.8147735305312381 Độ chính xác kiểm tra :: 0.8086616099828725 Ma trận nhầm lẫn [[9870 16] [2330 45]] Nó nói rằng mô hình của tôi chỉ có độ chính xác 73%
Pedro Alves

Ma trận nhầm lẫn đó sẽ tương ứng với độ chính xác kiểm tra của bạn. (9870 + 45) / (9870 + 2330 + 16 + 45) = 0,80966161
S van Balen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.