Hướng dẫn how do you find the accuracy of a confusion matrix in python? - làm thế nào để bạn tìm thấy độ chính xác của một ma trận nhầm lẫn trong python?
Ma trận nhầm lẫn - không quá khó hiểu!Bạn đã từng ở trong một tình huống mà bạn mong đợi mô hình học máy của bạn hoạt động thực sự tốt nhưng nó đã tạo ra một độ chính xác kém? Bạn đã thực hiện tất cả các công việc khó khăn - vậy mô hình phân loại đã sai ở đâu? Làm thế nào bạn có thể sửa cái này? Show
Có rất nhiều cách để đánh giá hiệu suất của mô hình phân loại của bạn nhưng không có cách nào đứng trước thử nghiệm của thời gian như ma trận nhầm lẫn. Nó giúp chúng tôi đánh giá cách mô hình của chúng tôi thực hiện, nơi nó đã sai và cung cấp cho chúng tôi hướng dẫn để điều chỉnh con đường của chúng tôi. Trong bài viết này, chúng tôi sẽ khám phá cách một ma trận nhầm lẫn đưa ra một cái nhìn toàn diện về hiệu suất của mô hình của bạn. Và không giống như tên của nó, bạn sẽ nhận ra rằng một ma trận nhầm lẫn là một khái niệm khá đơn giản nhưng mạnh mẽ. Vì vậy, hãy để Lừa làm sáng tỏ bí ẩn xung quanh ma trận nhầm lẫn! Học các sợi dây trong lĩnh vực học máy? Các khóa học này sẽ đưa bạn lên con đường của bạn:
Ở đây, những gì chúng tôi bao gồm:
Ma trận nhầm lẫn là gì?Câu hỏi triệu đô-sau tất cả, là một ma trận nhầm lẫn? Một ma trận nhầm lẫn là ma trận N X N được sử dụng để đánh giá hiệu suất của mô hình phân loại, trong đó N là số lượng các lớp đích. Ma trận so sánh các giá trị mục tiêu thực tế với các giá trị được dự đoán bởi mô hình học máy. Điều này cho chúng ta một cái nhìn toàn diện về việc mô hình phân loại của chúng ta hoạt động tốt như thế nào và loại lỗi nào của nó. Đối với vấn đề phân loại nhị phân, chúng ta sẽ có ma trận 2 x 2 như được hiển thị bên dưới với 4 giá trị: Hãy để giải mã Ma trận:
Nhưng chờ đã - những gì mà TP TP, FP, FN và TN ở đây? Đó là phần quan trọng của một ma trận nhầm lẫn. Hãy để hiểu từng thuật ngữ dưới đây. Hiểu được sự tích cực thực sự, tiêu cực thực sự, dương tính giả và âm tính giả trong ma trận nhầm lẫnTích cực thực sự (TP) & NBSP;
Đúng là âm (TN) & NBSP;
Đúng là âm (TN) & NBSP;
Giá trị thực tế là âm nhưng mô hình dự đoán giá trị dương
Giá trị thực tế là âm nhưng mô hình dự đoán giá trị dương Còn được gọi là lỗi loại 1
Các giá trị khác nhau của ma trận nhầm lẫn sẽ như sau: Tích cực thực (TP) = 560; có nghĩa là 560 điểm dữ liệu lớp dương được phân loại chính xác theo mô hình Đúng là âm (TN) = 330; có nghĩa là 330 điểm dữ liệu lớp âm được phân loại chính xác theo mô hìnhSai dương (FP) = 60; Có nghĩa là 60 điểm dữ liệu lớp tiêu cực được phân loại không chính xác là thuộc lớp dương tính bởi mô hình Sai âm (FN) = 50; Có nghĩa là 50 điểm dữ liệu lớp dương được phân loại không chính xác là thuộc lớp âm của mô hình Điều này hóa ra là một trình phân loại khá tốt cho bộ dữ liệu của chúng tôi xem xét số lượng các giá trị âm tích cực và đúng tương đối lớn hơn. Hãy nhớ các lỗi loại 1 và loại 2. Người phỏng vấn thích hỏi sự khác biệt giữa hai người này! Bạn có thể chuẩn bị cho tất cả điều này tốt hơn từ khóa học máy học của chúng tôi trực tuyếnimbalanced dataset. There are 947 data points for the negative class and 3 data points for the positive class. This is how we’ll calculate the accuracy: Hãy cùng xem cách thức thực hiện mô hình của chúng tôi: Tổng giá trị kết quả là: TP = 30, TN = 930, FP = 30, FN = 10 Vì vậy, độ chính xác cho mô hình của chúng tôi hóa ra là: 96%! Không tệ! Nhưng nó đang cho ý tưởng sai về kết quả. Nghĩ về nó. Mô hình của chúng tôi đang nói rằng tôi có thể dự đoán người bệnh 96% thời gian. Tuy nhiên, nó đang làm ngược lại. Đó là dự đoán những người sẽ không bị bệnh với độ chính xác 96% trong khi người bệnh đang lây lan virus! Bạn có nghĩ rằng đây là một số liệu chính xác cho mô hình của chúng tôi với mức độ nghiêm trọng của vấn đề? Chúng ta có nên đo lường có bao nhiêu trường hợp tích cực mà chúng ta có thể dự đoán chính xác để bắt giữ sự lây lan của virus truyền nhiễm? Hoặc có thể, trong số các trường hợp dự đoán chính xác, có bao nhiêu trường hợp tích cực để kiểm tra độ tin cậy của mô hình của chúng tôi? Đây là nơi chúng ta bắt gặp khái niệm kép về độ chính xác và thu hồi. Độ chính xác so với thu hồi
Đây là cách tính toán độ chính xác: Điều này sẽ xác định liệu mô hình của chúng tôi có đáng tin cậy hay không.
Và đây là cách mà chúng ta có thể tính toán thu hồi: Chúng tôi có thể dễ dàng tính toán độ chính xác và nhớ lại cho mô hình của mình bằng cách cắm các giá trị vào các câu hỏi trên: 50% phần trăm của các trường hợp dự đoán chính xác hóa ra là các trường hợp tích cực. Trong khi 75% các tích cực được dự đoán thành công bởi mô hình của chúng tôi. Đáng kinh ngạc!
Độ chính xác rất quan trọng trong các hệ thống khuyến nghị âm nhạc hoặc video, các trang web thương mại điện tử, v.v ... Kết quả sai có thể dẫn đến sự khuấy động của khách hàng và có hại cho doanh nghiệp.
Nhớ lại rất quan trọng trong các trường hợp y tế khi không quan trọng liệu chúng ta có đưa ra báo động sai nhưng các trường hợp tích cực thực tế không nên không bị phát hiện! Trong ví dụ của chúng tôi, việc thu hồi sẽ là một số liệu tốt hơn vì chúng tôi không muốn vô tình xuất viện một người bị nhiễm bệnh và để họ trộn lẫn với dân số khỏe mạnh do đó lây lan virus truyền nhiễm. Bây giờ bạn có thể hiểu tại sao độ chính xác là một số liệu xấu cho mô hình của chúng tôi. Nhưng sẽ có những trường hợp không có sự khác biệt rõ ràng giữa việc chính xác là quan trọng hơn hay nhớ lại. Chúng ta nên làm gì trong những trường hợp đó? Chúng tôi kết hợp chúng! F1-scoreTrong thực tế, khi chúng tôi cố gắng tăng độ chính xác của mô hình của chúng tôi, việc thu hồi sẽ giảm và ngược lại. Điểm số F1 nắm bắt cả hai xu hướng trong một giá trị duy nhất: Điểm số F1 là một phương tiện hài hòa của độ chính xác và thu hồi, và vì vậy nó đưa ra một ý tưởng kết hợp về hai số liệu này. Đó là tối đa khi độ chính xác bằng với thu hồi., and so it gives a combined idea about these two metrics. It is maximum when Precision is equal to Recall. Nhưng có một cái bắt ở đây. Khả năng diễn giải của điểm F1 là kém. Điều này có nghĩa là chúng tôi không biết những gì phân loại của chúng tôi đang tối đa hóa - độ chính xác hoặc thu hồi? Vì vậy, chúng tôi sử dụng nó kết hợp với các số liệu đánh giá khác cho chúng tôi một bức tranh hoàn chỉnh về kết quả. Ma trận nhầm lẫn bằng cách sử dụng Scikit-learn trong PythonBạn biết lý thuyết - bây giờ hãy để Lừa đưa nó vào thực tế. Hãy để mã hóa một ma trận nhầm lẫn với thư viện scikit-learn (sklearn) trong mã python.python: Sklearn có hai chức năng lớn: FIGHSION_MATRIX () và phân loại_report ().confusion_matrix() and classification_report().
Trung bình Mirco là điểm chính xác/thu hồi/điểm F1 được tính toán cho tất cả các lớp. is the precision/recall/f1-score calculated for all the classes. Trung bình vĩ mô là trung bình của chính xác/thu hồi/điểm F1. is the average of precision/recall/f1-score. Trung bình có trọng số chỉ là trung bình có trọng số của chính xác/thu hồi/điểm F1. is just the weighted average of precision/recall/f1-score. Ma trận nhầm lẫn để phân loại nhiều lớpLàm thế nào một ma trận nhầm lẫn sẽ hoạt động cho một vấn đề phân loại đa lớp? Chà, đừng gãi đầu! Chúng tôi sẽ có một cái nhìn về điều đó ở đây. Hãy cùng rút ra một ma trận nhầm lẫn cho một vấn đề đa dạng, nơi chúng ta phải dự đoán liệu một người yêu thích Facebook, Instagram hay Snapchat. Ma trận nhầm lẫn sẽ là ma trận 3 x 3 như thế này: Tích cực thực sự, âm tính đúng, dương tính giả và âm tính giả cho mỗi lớp sẽ được tính toán bằng cách thêm các giá trị ô như sau: Đó là nó! Bạn đã sẵn sàng để giải mã bất kỳ ma trận nhầm lẫn n x n nào! Ghi chú kết thúcVà đột nhiên ma trận nhầm lẫn không còn khó hiểu nữa! Bài viết này sẽ cung cấp cho bạn một cơ sở vững chắc về cách Intepret và sử dụng ma trận nhầm lẫn cho các thuật toán phân loại trong học máy. Chúng tôi sẽ sớm đưa ra một bài viết về đường cong AUC-ROC và tiếp tục thảo luận ở đó. Cho đến lần tiếp theo, don lồng mất hy vọng trong mô hình phân loại của bạn, bạn có thể đang sử dụng số liệu đánh giá sai! Làm thế nào để bạn tìm thấy độ chính xác từ ma trận nhầm lẫn trong mã Python?Bây giờ chúng tôi sẽ tạo ra các giá trị thực tế và dự đoán bằng cách sử dụng Numpy:.. nhập khẩu numpy .. thực tế = numpy.random.binomial (1, 0,9, kích thước = 1000) .... từ các số liệu nhập khẩu sklearn .. cm_display = metrics.confusionmatrixdisplay (confusion_matrix = confusion_matrix, display_labels = [false, true]). Nhập matplotlib.pyplot như plt .. Làm thế nào để bạn tìm thấy độ chính xác của một ma trận nhầm lẫn?Độ chính xác được tính bằng tổng số của hai dự đoán chính xác (TP + TN) chia cho tổng số dữ liệu (p + n).
Làm thế nào để python tính toán độ chính xác?Cách tính độ chính xác cân bằng trong Python bằng Sklearn.. Độ chính xác cân bằng = (độ nhạy + độ đặc hiệu) / 2 .. Độ chính xác cân bằng = (0,75 + 9868) / 2 .. Độ chính xác cân bằng = 0,8684 .. Độ chính xác trong ma trận nhầm lẫn là gì?Độ chính xác phân loại là tỷ lệ của các dự đoán chính xác cho tổng dự đoán được thực hiện.Phân loại độ chính xác = dự đoán chính xác / tổng dự đoán.1. Phân loại độ chính xác = dự đoán chính xác / tổng dự đoán.Nó thường được trình bày dưới dạng phần trăm bằng cách nhân kết quả với 100.the ratio of correct predictions to total predictions made. classification accuracy = correct predictions / total predictions. 1. classification accuracy = correct predictions / total predictions. It is often presented as a percentage by multiplying the result by 100. |