Làm thế nào để bạn vẽ một ma trận nhầm lẫn trong python bằng sklearn?
Trong bài đăng này, tôi sẽ trình bày cách vẽ Ma trận nhầm lẫn. Tôi sẽ sử dụng ma trận nhầm lẫn từ thư viện Scikit-Learn ( 5) và Matplotlib để hiển thị kết quả ở định dạng trực quan hơnTài liệu về Ma trận nhầm lẫn khá tốt, nhưng tôi đã cố gắng tìm cách nhanh chóng để thêm nhãn và trực quan hóa đầu ra vào bảng 2x2 Để đọc giới thiệu tốt về ma trận nhầm lẫn, hãy xem bài đăng tuyệt vời này http. //www. trường dữ liệu. io/simple-guide-to-confusion-matrix-terminology Đây là một bản mô phỏng giao diện mà tôi đang cố gắng đạt được
Hãy xem qua một ví dụ về Hồi quy logistic nhanh bằng Scikit-Learn. Đối với dữ liệu, tôi sẽ sử dụng bộ dữ liệu Iris phổ biến (để đọc thêm về nó, hãy tham khảo https. // vi. wikipedia. org/wiki/Iris_flower_data_set) Chúng tôi sẽ sử dụng ma trận nhầm lẫn để đánh giá độ chính xác của phân loại và vẽ đồ thị bằng matplotlib
chiều dài lá đài (cm)chiều rộng lá đài (cm)chiều dài cánh hoa (cm)chiều rộng cánh hoa (cm)Mục tiêu 5. 13. 51. 40. 20 4. 93. 01. 40. 20 4. 73. 21. 30. 20 4. 63. 11. 50. 20 5. 03. 61. 40. 20Chúng tôi có thể kiểm tra dữ liệu của mình một cách nhanh chóng bằng cách sử dụng chức năng tương quan Pandas để chọn một tính năng phù hợp cho hồi quy logistic của chúng tôi. Chúng tôi sẽ sử dụng phương pháp lê mặc định
Vì vậy, hãy chọn hai cái có tiềm năng cao nhất. Chiều rộng cánh hoa (cm) và Chiều dài cánh hoa (cm) là các biến độc lập (X) của chúng tôi. Đối với biến Mục tiêu/phụ thuộc (Y), chúng ta có thể chọn lớp Versicolor. Lớp Target thực sự có ba lựa chọn, để đơn giản hóa nhiệm vụ của chúng ta và thu hẹp nó thành một bộ phân loại nhị phân, tôi sẽ chọn Versicolor để thu hẹp các lớp phân loại của chúng ta thành (0 hoặc 1). nó có nhiều màu (1) hoặc không có nhiều màu (0)
Bây giờ hãy tạo X và Y của chúng ta
Chúng tôi sẽ chia dữ liệu của mình thành một bộ thử nghiệm và đào tạo, sau đó bắt đầu xây dựng mô hình Hồi quy logistic của chúng tôi. Chúng tôi sẽ sử dụng tỷ lệ chia 80/20 ________số 8_______Trước khi chúng tôi tạo trình phân loại của mình, chúng tôi sẽ cần chuẩn hóa dữ liệu (nhân rộng tính năng) bằng cách sử dụng chức năng tiện ích 6 một phần của gói tiền xử lý Scikit-Learn
Bây giờ chúng tôi đã sẵn sàng để xây dựng Trình phân loại logistic của mình
Bây giờ, hãy đánh giá trình phân loại của chúng ta bằng ma trận nhầm lẫn 0 1Về mặt trực quan, những điều trên không dễ dàng truyền đạt trình phân loại của chúng tôi hoạt động như thế nào, nhưng chúng tôi chủ yếu tập trung vào phía trên bên phải và phía dưới bên trái (đây là các lỗi hoặc phân loại sai) Ma trận nhầm lẫn cho chúng ta biết rằng chúng ta có tổng cộng 15 (13 + 2) dữ liệu bị phân loại sai trong số 30 điểm kiểm tra (về. Versicolor, hoặc không Versicolor). Một cách tốt hơn để hình dung điều này có thể được thực hiện với đoạn mã dưới đây 2Để vẽ và hiển thị ranh giới quyết định phân tách hai lớp (Có nhiều màu hoặc Không có nhiều màu) 3Sẽ từ hai biểu đồ, chúng ta có thể dễ dàng thấy rằng trình phân loại không hoạt động tốt. Và trước khi tìm hiểu lý do tại sao (đây sẽ là một bài đăng khác về cách xác định xem dữ liệu có thể phân tách tuyến tính hay không), chúng ta có thể giả định rằng đó là do dữ liệu không thể phân tách tuyến tính (đối với bộ dữ liệu IRIS trên thực tế, chỉ có lớp setosa là có thể phân tách tuyến tính) Ma trận nhầm lẫn Sklearn trả về điều gì?Ma trận nhầm lẫn sử dụng scikit-learning trong Python
. Tuy nhiên, đầu ra hơi khác so với những gì chúng ta đã nghiên cứu cho đến nay. Nó lấy các hàng làm Giá trị thực và các cột làm Giá trị dự đoán. the values of the Confusion matrix. The output is, however, slightly different from what we have studied so far. It takes the rows as Actual values and the columns as Predicted values.
Ma trận nhầm lẫn Sklearn là gì?Theo định nghĩa, ma trận nhầm lẫn là sao cho C i , j bằng với số quan sát được biết là thuộc nhóm và được dự đoán thuộc nhóm . Thus in binary classification, the count of true negatives is C 0 , 0 , false negatives is C 1 , 0 , true positives is C 1 , 1 and false positives is C 0 , 1 . |