Tính toán độ chính xác, thu hồi, điểm F1 Python
Thuật ngữ của một miền cụ thể thường khó bắt đầu với. Với nền tảng kỹ thuật phần mềm, học máy có nhiều thuật ngữ như vậy mà tôi thấy mình cần nhớ để sử dụng các công cụ và đọc các bài báo Show
Một số thuật ngữ cơ bản là Precision, Recall và F1-Score. Những điều này liên quan đến việc có được ý tưởng chi tiết hơn về mức độ hoạt động của bộ phân loại, trái ngược với việc chỉ xem xét độ chính xác tổng thể. Viết một lời giải thích buộc tôi phải suy nghĩ thấu đáo và giúp tôi tự ghi nhớ chủ đề. Đó là lý do tại sao tôi thích viết những bài báo này Tôi đang xem một bộ phân loại nhị phân trong bài viết này. Các khái niệm tương tự được áp dụng rộng rãi hơn, chỉ cần xem xét thêm một chút về các vấn đề nhiều lớp. Nhưng đó là một cái gì đó để xem xét thời gian khác Trước khi đi vào chi tiết, một con số tổng quan luôn đẹp Hệ thống phân cấp của Số liệu từ phép đo thô/dữ liệu được gắn nhãn đến Điểm F1. Hình ảnh của tác giảThoạt nhìn, nó là một trang web lộn xộn. Bây giờ không cần phải lo lắng về các chi tiết, nhưng chúng ta có thể nhìn lại điều này trong các phần sau khi giải thích các chi tiết từ dưới lên. Các chỉ số tạo thành một hệ thống phân cấp bắt đầu bằng các giá trị phủ định/dương tính đúng/sai (ở dưới cùng) và xây dựng tất cả các cách để đạt được điểm F1 để liên kết tất cả chúng lại với nhau. Hãy xây dựng từ đó Đúng/Sai Tích cực và Tiêu cựcMột trình phân loại nhị phân có thể được xem như phân loại các trường hợp là tích cực hoặc tiêu cực
Cơ sở của độ chính xác, khả năng thu hồi và Điểm F1 xuất phát từ các khái niệm về Tích cực Thực sự, Tiêu cực Thực sự, Tích cực Sai và Tiêu cực Sai. Bảng sau đây minh họa những điều này (coi giá trị 1 là một dự đoán tích cực) Ví dụ về True/False Tích cực và Tiêu cựcTích cực thực sự (TP)Bảng sau đây cho thấy 3 ví dụ về Tích cực Thực sự (TP). Hàng đầu tiên là một ví dụ chung, trong đó 1 đại diện cho Dự đoán tích cực. Hai hàng sau đây là các ví dụ có nhãn. Trong nội bộ, các thuật toán sẽ sử dụng biểu diễn 1/0, nhưng tôi đã sử dụng các nhãn ở đây để hiểu trực quan hơn Ví dụ về quan hệ Tích cực Thực sự (TP)Dương tính giả (FP)Các ví dụ về Kết quả dương tính giả (FP) này minh họa việc đưa ra các dự đoán sai, dự đoán các mẫu Dương tính cho một mẫu Âm tính thực tế. Dự đoán thất bại như vậy được gọi là Tích cực sai Tiêu cực thực sự (TN)Đối với ví dụ Âm tính thực (TN), bộ phân loại mèo xác định chính xác ảnh không có mèo trong đó và ảnh y tế là bệnh nhân không bị ung thư. Vậy dự đoán là Phủ định và đúng (True) Âm tính giả (FN)Trong trường hợp Âm tính giả (FN), trình phân loại đã dự đoán kết quả Âm tính, trong khi kết quả thực tế là dương tính. Giống như không có con mèo khi có một con mèo. Vì vậy, dự đoán là Tiêu cực và sai (Sai). Vì vậy, nó là một tiêu cực sai Ma trận hỗn loạnMa trận nhầm lẫn đôi khi được sử dụng để minh họa hiệu suất của bộ phân loại dựa trên bốn giá trị trên (TP, FP, TN, FN). Chúng được vẽ với nhau để hiển thị một ma trận nhầm lẫn Ma trận hỗn loạn. Hình ảnh của tác giảSử dụng ví dụ dự đoán ung thư, một ma trận nhầm lẫn cho 100 bệnh nhân có thể giống như thế này Ma trận nhầm lẫn cho ví dụ ung thư. Hình ảnh của tác giảví dụ này có
Suy nghĩ về điều này một lúc, có những mức độ nghiêm trọng khác nhau đối với các lỗi khác nhau ở đây. Phân loại một người bị ung thư là không mắc bệnh (âm tính giả, từ chối điều trị), có thể nghiêm trọng hơn so với phân loại một người không mắc bệnh là mắc bệnh (dương tính giả, cân nhắc điều trị, làm thêm các xét nghiệm) Vì mức độ nghiêm trọng của các loại lỗi khác nhau khác nhau tùy theo trường hợp sử dụng, các số liệu như Độ chính xác, Độ chính xác, Thu hồi và điểm F1 có thể được sử dụng để cân bằng các ước tính của bộ phân loại theo ưu tiên Sự chính xácSố liệu cơ sở được sử dụng để đánh giá mô hình thường là Độ chính xác, mô tả số lượng dự đoán đúng trên tất cả các dự đoán Công thức chính xác. Hình ảnh của tác giảBa cái này hiển thị cùng một công thức để tính độ chính xác, nhưng theo cách diễn đạt khác nhau. Từ chính thức hơn đến trực quan hơn (ý kiến của tôi). Trong ví dụ ung thư ở trên, độ chính xác sẽ là
Đây có lẽ là thước đo đánh giá mô hình trực quan nhất và do đó thường được sử dụng. Nhưng thường thì cũng hữu ích nếu nhìn sâu hơn một chút Độ chính xácĐộ chính xác là thước đo xem có bao nhiêu dự đoán tích cực được đưa ra là chính xác (dương tính thực). Công thức cho nó là công thức chính xác. Hình ảnh của tác giảTất cả ba từ trên lại chỉ là những từ khác nhau giống nhau, với từ cuối cùng sử dụng trường hợp ung thư làm ví dụ cụ thể. Trong ví dụ về bệnh ung thư này, sử dụng các giá trị từ ma trận nhầm lẫn ví dụ trên, độ chính xác sẽ là
Thu hồi là thước đo xem có bao nhiêu trường hợp tích cực mà trình phân loại đã dự đoán chính xác, trên tất cả các trường hợp tích cực trong dữ liệu. Nó đôi khi còn được gọi là Độ nhạy. Công thức cho nó là Nhớ lại công thức. Hình ảnh của tác giảMột lần nữa, đây chỉ là cùng một công thức diễn đạt theo ba cách khác nhau. Đối với ví dụ về bệnh ung thư, sử dụng dữ liệu ma trận nhầm lẫn, việc thu hồi sẽ là
Độ đặc hiệu là thước đo xem có bao nhiêu dự đoán tiêu cực được đưa ra là đúng (phủ định đúng). Công thức cho nó là công thức tính đặc hiệu. Hình ảnh của tác giảTrong ví dụ y tế trên, tính đặc hiệu sẽ là
F1-Score là thước đo kết hợp cả độ chính xác và độ thu hồi. Nó thường được mô tả là trung bình hài hòa của hai. Giá trị trung bình hài hòa chỉ là một cách khác để tính “trung bình” của các giá trị, thường được mô tả là phù hợp hơn cho các tỷ lệ (chẳng hạn như độ chính xác và thu hồi) so với giá trị trung bình số học truyền thống. Công thức được sử dụng cho điểm F1 trong trường hợp này là Công thức F1-Score. Hình ảnh của tác giảÝ tưởng là cung cấp một số liệu duy nhất đánh giá hai tỷ lệ (độ chính xác và khả năng thu hồi) theo cách cân bằng, yêu cầu cả hai phải có giá trị cao hơn để giá trị điểm F1 tăng lên. Ví dụ: Độ chính xác bằng 0. 01 và Thu hồi 1. 0 sẽ cho
Điều này là do điểm F1 nhạy hơn nhiều với một trong hai đầu vào có giá trị thấp (0. 01 tại đây). Điều đó thật tuyệt nếu bạn muốn cân bằng cả hai Một số ưu điểm của F1-score
Trong ví dụ về bệnh ung thư ở trên, điểm F1 sẽ là
Khám phá điểm số F1Tôi thấy dễ hiểu các khái niệm nhất bằng cách xem xét một số ví dụ. Đầu tiên, một hàm trong Python để tính điểm F1 Triển khai Python của công thức điểm F1. Hình ảnh của tác giảĐể so sánh các kết hợp khác nhau giữa độ chính xác và độ thu hồi, tôi tạo các giá trị ví dụ cho độ chính xác và độ thu hồi trong phạm vi từ 0 đến 1 với các bước là 0. 01 (100 giá trị của 0. 01, 0. 02, 0. 03, … , 1. 0) Tạo các giá trị mẫu cho độ chính xác và thu hồi. Hình ảnh của tác giảĐiều này tạo ra một danh sách cho cả độ chính xác và thu hồi để thử nghiệm với Đã tạo giá trị chính xác và thu hồi. Hình ảnh của tác giảĐiểm F1 khi độ chính xác = thu hồiĐể xem điểm F1 là gì nếu độ chính xác bằng khả năng thu hồi, chúng ta có thể tính điểm F1 cho mỗi điểm 0. 01 ăn 1. 0, với độ chính xác = thu hồi tại mỗi điểm Tính Điểm F1 cho các giá trị ví dụ, trong đó độ chính xác = thu hồi ở mỗi 100 điểm. Hình ảnh của tác giảĐiểm F1 khi độ chính xác = thu hồi. Điểm F1 bằng độ chính xác và thu hồi tại mỗi điểm khi p=r. Hình ảnh của tác giảĐiểm F1 bằng độ chính xác và gọi lại nếu hai chỉ số đầu vào (P&R) bằng nhau. Cột Khác biệt trong bảng hiển thị sự khác biệt giữa giá trị nhỏ hơn (Chính xác/Thu hồi) và điểm F1. Ở đây chúng bằng nhau, vì vậy không có sự khác biệt, trong các ví dụ sau chúng bắt đầu thay đổi Điểm F1 khi Nhớ lại = 1. 0, Độ chính xác = 0. 01 ăn 1. 0Vì vậy, điểm F1 sẽ xử lý khá tốt các trường hợp khi một trong các yếu tố đầu vào (P/R) thấp, ngay cả khi yếu tố đầu vào kia rất cao Hãy thử đặt Nhớ lại tối đa là 1. 0 và thay đổi Độ chính xác từ 0. 01 ăn 1. 0 Tính điểm F1 khi thu hồi luôn là 1. 0 và độ chính xác thay đổi từ 0. 01 đến 1. 0. Hình ảnh của tác giảĐiểm F1 khi thu hồi = 1. 0 và độ chính xác thay đổi từ 0. 1 đối 1. 0. Hình ảnh của tác giảĐúng như dự đoán, điểm F1 vẫn ở mức thấp khi một trong hai đầu vào (Độ chính xác / Thu hồi) thấp. Cột khác biệt cho thấy điểm F1 trong trường hợp này tăng nhanh hơn một chút so với đầu vào nhỏ hơn (Độ chính xác tại đây), tăng nhiều hơn về phía giữa biểu đồ, tăng trọng số một chút theo giá trị lớn hơn (Nhớ lại tại đây). Tuy nhiên, nó không bao giờ đi quá xa so với đầu vào nhỏ hơn, cân bằng điểm tổng thể dựa trên cả hai đầu vào. Những khác biệt này cũng có thể được hình dung trên hình (sự khác biệt là lớn nhất ở đường màu đỏ dọc) F1-Score với độ chính xác = 1. 0, gọi lại = 0–1. 0 với bài viết nổi bật. Hình ảnh của tác giảĐiểm F1 khi Độ chính xác = 1. 0 và Nhớ lại = 0. 01 ăn 1. 0Nếu hoán đổi vai trò của Precision và Recall trong ví dụ trên, chúng ta sẽ nhận được kết quả tương tự (do công thức tính điểm F1) Tính F1-Score khi độ chính xác luôn là 1. 0 và thu hồi thay đổi từ 0. 0 đến 1. 0. Hình ảnh của tác giảĐiểm F1 khi độ chính xác = 1. 0 và thu hồi thay đổi từ 0. 01 đến 1. 0. Hình ảnh của tác giảĐiều này có nghĩa là, bất kể điểm nào cao hơn hay thấp hơn, điểm F1 tổng thể đều bị ảnh hưởng theo cùng một cách (điều này có vẻ khá rõ ràng trong công thức nhưng rất dễ quên) Điểm F1 khi Độ chính xác = 0. 8 và Nhớ lại = 0. 01 ăn 1. 0Bên cạnh việc cố định tối đa một đầu vào, hãy thử thấp hơn một chút. Ở đây độ chính xác được cố định ở 0. 8, trong khi Nhớ lại thay đổi từ 0. 01 đến 1. 0 như trước đây Tính điểm F1 khi độ chính xác luôn bằng 0. 8 và thu hồi thay đổi từ 0. 0 đến 1. 0. Hình ảnh của tác giảĐiểm F1 khi độ chính xác = 0. 8 và thu hồi thay đổi từ 0. 01 ăn 1. 0. Hình ảnh của tác giảĐiểm cao nhất với đầu vào (0. 8, 1. 0) là 0. 89. Hình dạng đường cong tăng tương tự khi giá trị thu hồi tăng. Tối đa Độ chính xác = 1. 0, nó đạt được giá trị khoảng 0. 1 (hoặc 0. 09) cao hơn giá trị nhỏ hơn (0. 89 so với 0. số 8) Điểm F1 khi Độ chính xác = 0. 1 và Nhớ lại = 0. 01 đến 1. 0Và nếu chúng tôi cố định một giá trị gần tối thiểu bằng 0. 1? Tính điểm F1 khi độ chính xác luôn bằng 0. 1 và thu hồi thay đổi từ 0. 0 đến 1. 0. Hình ảnh của tác giảĐiểm F1 khi độ chính xác = 0. 1 và thu hồi thay đổi từ 0. 01 ăn 1. 0. Hình ảnh của tác giảBởi vì một trong hai đầu vào luôn ở mức thấp (0. 1), điểm F1 không bao giờ tăng quá cao. Tuy nhiên, điều thú vị là nó lại tăng tối đa lên khoảng 0. 08 giá trị lớn hơn đầu vào nhỏ hơn (Độ chính xác = 0. 1, điểm F1=0. 18). Điều này khá giống với giá trị cố định của Precision = 0. 8 ở trên, trong đó giá trị tối đa đạt được là 0. 09 cao hơn đầu vào nhỏ hơn Tập trung điểm F1 vào độ chính xác hoặc thu hồiBên cạnh điểm số F1 đơn giản, còn có một phiên bản chung hơn, được gọi là Fbeta-score. Điểm F1 là một trường hợp đặc biệt của điểm Fbeta, trong đó beta=1. Nó cho phép một người cân nhắc độ chính xác hoặc thu hồi nhiều hơn, bằng cách thêm một hệ số trọng số. Tôi sẽ không đi sâu hơn vào điều đó trong bài đăng này, tuy nhiên, đó là điều cần ghi nhớ Điểm F1 so với Độ chính xácĐộ chính xác thường được mô tả là một số liệu trực quan hơn, với điểm số F1 giải quyết tốt hơn một tập dữ liệu mất cân bằng hơn. Vậy điểm F1 (F1) so với Độ chính xác (ACC) so sánh giữa các loại phân phối dữ liệu khác nhau (tỷ lệ dương/âm) như thế nào? mất cân bằng. Vài trường hợp tích cựcTrong ví dụ này, có sự mất cân bằng của 10 trường hợp dương tính và 90 trường hợp âm tính, với các giá trị TN, TP, FN và FP khác nhau để bộ phân loại tính toán F1 và ACC Điểm F1 so với độ chính xác với tỷ lệ dự đoán khác nhau và dữ liệu không cân bằng. Hình ảnh của tác giảĐộ chính xác tối đa với sự mất cân bằng của lớp là với kết quả TN=90 và TP=10, như được hiển thị trên hàng 2 Trong mỗi trường hợp TP = 0, Độ chính xác và Thu hồi đều trở thành 0 và điểm F1 không thể tính được (chia cho 0). Những trường hợp như vậy có thể được cho điểm là F1-score = 0 hoặc thường đánh dấu bộ phân loại là vô dụng. Bởi vì bộ phân loại không thể dự đoán bất kỳ kết quả dương tính chính xác nào. Đây là hàng 0, 4 và 8 trong bảng trên. Những điều này cũng minh họa một số trường hợp Độ chính xác cao đối với bộ phân loại bị hỏng (e. g. , hàng 0 với Độ chính xác 90% trong khi luôn chỉ dự đoán âm) Các hàng còn lại minh họa cách điểm số F1 phản ứng tốt hơn nhiều đối với trình phân loại đưa ra các dự đoán cân bằng hơn. Ví dụ, điểm F1=0. 18 vs Độ chính xác = 0. 91 trên hàng 5, đến F1-score=0. 46 so với Độ chính xác = 0. 93 trên hàng 7. Đây chỉ là sự thay đổi của 2 dự đoán tích cực, nhưng vì có thể xảy ra trong số 10 dự đoán, nên thay đổi thực sự khá lớn và điểm F1 nhấn mạnh điều này (và Độ chính xác không thấy sự khác biệt với bất kỳ giá trị nào khác) Cân bằng 50/50 trường hợp Tích cực và Tiêu cựcCòn khi các bộ dữ liệu cân bằng hơn thì sao? Điểm F1 so với độ chính xác với tỷ lệ dự đoán khác nhau và dữ liệu cân bằng. Hình ảnh của tác giảĐiểm F1 vẫn là một thước đo tốt hơn một chút ở đây, khi chỉ có rất ít (hoặc không có) dự đoán tích cực nào. Nhưng sự khác biệt không lớn như với các lớp không cân bằng. Nói chung, vẫn luôn hữu ích khi xem xét sâu hơn một chút về kết quả, mặc dù trong các bộ dữ liệu cân bằng, độ chính xác cao thường là một chỉ báo tốt về hiệu suất phân loại tốt mất cân bằng. Vài trường hợp tiêu cựcCuối cùng, điều gì sẽ xảy ra nếu tầng lớp thiểu số được đánh giá là tiêu cực và không tích cực? . Dưới đây là một ví dụ với 10 trường hợp tiêu cực và 90 trường hợp tích cực Điểm F1 so với Độ chính xác khi lớp tích cực là lớp đa số. Hình ảnh của tác giảVí dụ hàng 5 chỉ có 1 dự đoán đúng trong 10 trường hợp âm. Nhưng điểm F1 vẫn ở mức khoảng 95%, rất tốt và thậm chí còn cao hơn cả độ chính xác. Trong trường hợp tỷ lệ tương tự được áp dụng cho các trường hợp dương tính là thiểu số, điểm F1 cho trường hợp này là 0. 18 so với bây giờ là 0. 95. Đó là một chỉ số tốt hơn nhiều về chất lượng hơn là trong trường hợp này Kết quả này với các trường hợp tiêu cực thiểu số là do cách xác định công thức tính điểm F1 dựa trên độ chính xác và thu hồi (nhấn mạnh các trường hợp tích cực). Nếu nhìn lại hình minh họa hệ thống phân cấp chỉ số ở đầu bài viết này, bạn sẽ thấy cách Điểm tích cực Thực sự đưa vào cả Độ chính xác và Thu hồi, rồi từ đó đến điểm F1. Con số tương tự cũng cho thấy Âm tính Thực sự hoàn toàn không đóng góp vào điểm số F1 như thế nào. Điều này dường như có thể nhìn thấy ở đây nếu bạn đảo ngược các tỷ lệ và có ít tiêu cực thực sự hơn Vì vậy, như thường lệ, tôi tin rằng bạn nên ghi nhớ cách trình bày dữ liệu của mình và khám phá dữ liệu của riêng bạn, không mù quáng tin tưởng vào bất kỳ số liệu nào kết luậnVì vậy, những số liệu này tốt cho là gì? Độ chính xác truyền thống là một thước đo tốt nếu bạn có bộ dữ liệu khá cân bằng và quan tâm đến tất cả các loại đầu ra như nhau. Tôi thích bắt đầu với nó trong mọi trường hợp, vì nó trực quan và tìm hiểu sâu hơn từ đó khi cần Độ chính xác là điều tuyệt vời để tập trung vào nếu bạn muốn giảm thiểu thông tin sai lệch. Ví dụ: bạn xây dựng bộ phân loại email spam. Bạn muốn thấy càng ít thư rác càng tốt. Nhưng bạn không muốn bỏ lỡ bất kỳ email quan trọng, không phải thư rác nào. Trong những trường hợp như vậy, bạn có thể muốn nhắm đến việc tối đa hóa độ chính xác Nhớ lại là rất quan trọng trong các lĩnh vực như y tế (e. g. , xác định ung thư), nơi bạn thực sự muốn giảm thiểu khả năng bỏ sót các trường hợp dương tính (dự đoán âm tính giả). Đây thường là những trường hợp bỏ sót trường hợp dương tính có chi phí lớn hơn nhiều so với việc phân loại sai thứ gì đó là dương tính Cả độ chính xác và khả năng thu hồi đều không nhất thiết hữu ích một mình, vì chúng ta thường quan tâm đến bức tranh tổng thể hơn. Độ chính xác luôn tốt để kiểm tra như một tùy chọn. Điểm F1 là một điểm khác Điểm F1 kết hợp độ chính xác và khả năng thu hồi, đồng thời cũng hoạt động đối với các trường hợp bộ dữ liệu bị mất cân bằng vì nó yêu cầu cả độ chính xác và khả năng thu hồi phải có giá trị hợp lý, như được minh họa bằng các thử nghiệm mà tôi đã trình bày trong bài đăng này. Ngay cả khi bạn có một số ít trường hợp tích cực so với trường hợp tiêu cực, công thức sẽ giảm trọng số của giá trị chỉ số nếu độ chính xác hoặc khả năng thu hồi của lớp tích cực thấp Bên cạnh những chỉ số này, còn có nhiều chỉ số và cách khác để khám phá kết quả của bạn. Một cách tiếp cận phổ biến và rất hữu ích cũng là sử dụng ROC- và đường cong thu hồi độ chính xác. Điều này cho phép tinh chỉnh các ngưỡng đánh giá theo loại lỗi mà chúng tôi muốn giảm thiểu. Nhưng đó là một chủ đề khác để khám phá Thu hồi độ chính xác của F1 được tính như thế nào?Điểm F (thước đo F, thước đo F1). Điểm F là giá trị trung bình hài hòa của các giá trị Độ chính xác và Độ thu hồi của một hệ thống và nó trả lời cho công thức sau. 2 x [(Chính xác x Thu hồi) / (Chính xác + Thu hồi)] .
Python thu hồi độ chính xác F1 là gì?Điểm F1 là trung bình điều hòa của độ chính xác và điểm thu hồi và được sử dụng làm chỉ số trong các tình huống chọn chính xác hoặc thu hồi .
Độ chính xác Precision Recall F1 điểm Python là gì?Điểm F1 chỉ trở thành 1 khi độ chính xác và khả năng thu hồi đều bằng 1. Điểm F1 chỉ cao khi cả độ chính xác và độ thu hồi đều cao. Điểm F1 là trung bình điều hòa của độ chính xác và khả năng thu hồi và là thước đo tốt hơn độ chính xác . Trong ví dụ mang thai, Điểm F1 = 2* ( 0. 857 * 0. 75)/(0. 857 + 0. 75) = 0. 799.
Làm cách nào để tính điểm F1 cho Python đa lớp?Lấy điểm trung bình của f1 cho mỗi lớp. đó là kết quả trung bình / tổng số ở trên. Nó còn được gọi là tính trung bình vĩ mô. Tính toán điểm số f1 bằng cách sử dụng tổng số kết quả dương tính thật/âm tính giả, v.v. (bạn tính tổng số lần khẳng định đúng / phủ định sai cho mỗi loại) . |