Hướng dẫn how do you calculate precision and recall in python? - làm thế nào để bạn tính toán độ chính xác và thu hồi trong python?

Cập nhật lần cuối vào ngày 2 tháng 8 năm 2020

Độ chính xác phân loại là tổng số dự đoán chính xác chia cho tổng số dự đoán được thực hiện cho một bộ dữ liệu.

Là một biện pháp hiệu suất, độ chính xác là không phù hợp cho các vấn đề phân loại mất cân bằng.

Lý do chính là số lượng ví dụ áp đảo từ lớp đa số (hoặc các lớp) sẽ áp đảo số lượng ví dụ trong lớp thiểu số, có nghĩa là ngay cả các mô hình không biết Sự mất cân bằng lớp học xảy ra.

Một giải pháp thay thế cho việc sử dụng độ chính xác phân loại là sử dụng các số liệu độ chính xác và thu hồi.

Trong hướng dẫn này, bạn sẽ khám phá cách tính toán và phát triển trực giác cho độ chính xác và thu hồi để phân loại mất cân bằng.

Sau khi hoàn thành hướng dẫn này, bạn sẽ biết:

  • Độ chính xác định lượng số lượng dự đoán lớp tích cực thực sự thuộc về lớp dương.
  • Nhớ lại định lượng số lượng dự đoán lớp tích cực được đưa ra trong tất cả các ví dụ tích cực trong bộ dữ liệu.
  • F-MEASURE cung cấp một điểm duy nhất cân bằng cả mối quan tâm của độ chính xác và thu hồi trong một số.

Bắt đầu dự án của bạn với phân loại mất cân bằng cuốn sách mới của tôi với Python, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ. with my new book Imbalanced Classification with Python, including step-by-step tutorials and the Python source code files for all examples.

Bắt đầu nào.

  • Cập nhật tháng 1/2020: Ngôn ngữ được cải thiện về mục tiêu của độ chính xác và thu hồi. Đã sửa lỗi chính tả về độ chính xác và nhớ lại tìm cách giảm thiểu (cảm ơn các ý kiến!).: Improved language about the objective of precision and recall. Fixed typos about what precision and recall seek to minimize (thanks for the comments!).
  • Cập nhật tháng 2/2020: Đã sửa lỗi đánh máy trong tên biến để thu hồi và F1.: Fixed typo in variable name for recall and f1.

Hướng dẫn how do you calculate precision and recall in python? - làm thế nào để bạn tính toán độ chính xác và thu hồi trong python?

Cách tính toán độ chính xác, nhớ lại và đo F cho Phân loại mất cân bằng bằng cách sáp nhập Waldemar, một số quyền được bảo lưu.
Photo by Waldemar Merger, some rights reserved.

Tổng quan hướng dẫn

Hướng dẫn này được chia thành năm phần; họ đang:

  1. Ma trận nhầm lẫn để phân loại mất cân bằng
  2. Độ chính xác cho phân loại mất cân bằng
  3. Nhớ lại để phân loại mất cân bằng
  4. Độ chính xác so với thu hồi để phân loại mất cân bằng
  5. Phương thức F để phân loại mất cân bằng

Ma trận nhầm lẫn để phân loại mất cân bằng

Độ chính xác cho phân loại mất cân bằng

Nhớ lại để phân loại mất cân bằng

Độ chính xác so với thu hồi để phân loại mất cân bằng

Phương thức F để phân loại mất cân bằng

Trước khi chúng ta đi sâu vào độ chính xác và nhớ lại, điều quan trọng là phải xem xét ma trận nhầm lẫn.

Đối với các vấn đề phân loại mất cân bằng, lớp đa số thường được gọi là kết quả tiêu cực (ví dụ như không có thay đổi nào về kết quả kiểm tra âm tính hoặc kết quả kiểm tra âm tính) và lớp thiểu số thường được gọi là kết quả tích cực (ví dụ: thay đổi trên mạng hoặc thay đổi hoặc Kết quả kiểm tra tích cực của người Viking).

Ma trận nhầm lẫn cung cấp cái nhìn sâu sắc hơn về không chỉ hiệu suất của mô hình dự đoán, mà cả các lớp nào được dự đoán chính xác, không chính xác và loại lỗi nào đang được thực hiện.

Ma trận nhầm lẫn đơn giản nhất là cho một vấn đề phân loại hai lớp, với các lớp âm tính (lớp 0) và tích cực (lớp 1).

Trong loại ma trận nhầm lẫn này, mỗi ô trong bảng có một tên cụ thể và được hiểu rõ, được tóm tắt như sau:

| Dự đoán tích cực | Dự đoán tiêu cực

Độ chính xác cho phân loại mất cân bằng

Nhớ lại để phân loại mất cân bằng

Độ chính xác so với thu hồi để phân loại mất cân bằng

Phương thức F để phân loại mất cân bằng

Trước khi chúng ta đi sâu vào độ chính xác và nhớ lại, điều quan trọng là phải xem xét ma trận nhầm lẫn.

Đối với các vấn đề phân loại mất cân bằng, lớp đa số thường được gọi là kết quả tiêu cực (ví dụ như không có thay đổi nào về kết quả kiểm tra âm tính hoặc kết quả kiểm tra âm tính) và lớp thiểu số thường được gọi là kết quả tích cực (ví dụ: thay đổi trên mạng hoặc thay đổi hoặc Kết quả kiểm tra tích cực của người Viking).

Ma trận nhầm lẫn cung cấp cái nhìn sâu sắc hơn về không chỉ hiệu suất của mô hình dự đoán, mà cả các lớp nào được dự đoán chính xác, không chính xác và loại lỗi nào đang được thực hiện.

Ma trận nhầm lẫn đơn giản nhất là cho một vấn đề phân loại hai lớp, với các lớp âm tính (lớp 0) và tích cực (lớp 1).

  • Trong loại ma trận nhầm lẫn này, mỗi ô trong bảng có một tên cụ thể và được hiểu rõ, được tóm tắt như sau:

| Dự đoán tích cực | Dự đoán tiêu cực

Lớp học tích cực | Đúng tích cực (TP) & NBSP; & nbsp; | Sai âm (FN)

Lớp tiêu cực | Sai dương (FP) | Đúng là tiêu cực (TN)

Các số liệu độ chính xác và thu hồi được định nghĩa theo các ô trong ma trận nhầm lẫn, cụ thể là các thuật ngữ như tích cực thực sự và âm tính sai.

Bây giờ chúng tôi đã lướt qua ma trận nhầm lẫn, hãy để xem xét kỹ hơn về số liệu chính xác.

  • Trong loại ma trận nhầm lẫn này, mỗi ô trong bảng có một tên cụ thể và được hiểu rõ, được tóm tắt như sau:
  • Độ chính xác = 90 / (90 + 30)
  • Độ chính xác = 90/120
  • Độ chính xác = 0,75

Kết quả là độ chính xác là 0,75, đó là một giá trị hợp lý nhưng không nổi bật.

Bạn có thể thấy rằng độ chính xác chỉ đơn giản là tỷ lệ của các dự đoán tích cực chính xác trong tất cả các dự đoán tích cực được đưa ra hoặc độ chính xác của các dự đoán của lớp thiểu số.

Hãy xem xét cùng một bộ dữ liệu, trong đó một mô hình dự đoán 50 ví dụ thuộc lớp thiểu số, 45 trong số đó là tích cực thực sự và năm trong số đó là dương tính giả. Chúng ta có thể tính toán độ chính xác cho mô hình này như sau:

  • Độ chính xác = truepositives / (truepositives + falsePositives)
  • Độ chính xác = 45 / (45 + 5)
  • Độ chính xác = 45 /50
  • Độ chính xác = 0,90

Trong trường hợp này, mặc dù mô hình dự đoán ít ví dụ hơn thuộc về lớp thiểu số, tỷ lệ của các ví dụ tích cực chính xác là tốt hơn nhiều.

Điều này nhấn mạnh rằng mặc dù độ chính xác là hữu ích, nhưng nó không kể toàn bộ câu chuyện. Nó không nhận xét về có bao nhiêu ví dụ về lớp học thực sự được dự đoán là thuộc về lớp tiêu cực, được gọi là phủ định sai.

Bạn muốn bắt đầu với phân loại mất cân bằng?

Tham gia khóa học gặp sự cố email 7 ngày miễn phí của tôi ngay bây giờ (với mã mẫu).

Nhấp để đăng ký và cũng nhận được phiên bản Ebook PDF miễn phí của khóa học.

Độ chính xác cho phân loại đa lớp

Độ chính xác không giới hạn trong các vấn đề phân loại nhị phân.

Trong một vấn đề phân loại mất cân bằng với nhiều hơn hai lớp, độ chính xác được tính bằng tổng số tích cực thực sự trên tất cả các lớp chia cho tổng các dương tính thực sự và dương tính sai trên tất cả các lớp.

  • Độ chính xác = Sum C trong c truepositives_c / sum c trong c (truepositives_c + falsepositives_c)

Ví dụ, chúng ta có thể có một vấn đề phân loại đa lớp mất cân bằng trong đó lớp đa số là lớp tiêu cực, nhưng có hai lớp thiểu số tích cực: lớp 1 và lớp 2. Độ chính xác có thể định lượng tỷ lệ dự đoán chính xác trên cả hai lớp dương.

Hãy xem xét một bộ dữ liệu có tỷ lệ thiểu số 1: 1: 100, tỷ lệ 1: 1 cho mỗi lớp dương và tỷ lệ 1: 100 cho các lớp thiểu số so với lớp đa số và chúng tôi có 100 ví dụ trong mỗi nhóm thiểu số lớp, và 10.000 ví dụ trong lớp đa số.

Một mô hình đưa ra dự đoán và dự đoán 70 ví dụ cho lớp thiểu số đầu tiên, trong đó 50 là chính xác và 20 là không chính xác. Nó dự đoán 150 cho lớp thứ hai với 99 chính xác và 51 không chính xác. Độ chính xác có thể được tính toán cho mô hình này như sau:

  • Độ chính xác = (truepositives_1 + truepositives_2) / ((truepositives_1 + truepositives_2) + (falsePositives_1 + falsePositives_2)))
  • Độ chính xác = (50 + 99) / ((50 + 99) + (20 + 51))
  • Độ chính xác = 149 / (149 + 71)
  • Độ chính xác = 149/220
  • Độ chính xác = 0,677

Chúng ta có thể thấy rằng thang đo số liệu chính xác khi chúng ta tăng số lượng các lớp thiểu số.

Tính độ chính xác với Scikit-Learn

Điểm chính xác có thể được tính toán bằng cách sử dụng hàm scikit-learn precision_score ().

Ví dụ: chúng ta có thể sử dụng chức năng này để tính độ chính xác cho các kịch bản trong phần trước.

Đầu tiên, trường hợp có 100 ví dụ tích cực đến 10.000 ví dụ tiêu cực và mô hình dự đoán 90 điểm tích cực thực sự và 30 dương tính giả. Ví dụ hoàn chỉnh được liệt kê dưới đây.

# Tính toán độ chính xác cho bộ dữ liệu 1: 100 với 90 TP và 30 fp

từ sklearn.metrics nhập precision_scoresklearn.metrics import precision_score

# Xác định thực tế

act_pos=[1for_inrange(100)]=[1for_in range(100)]

act_neg=[0for_inrange(10000)]=[0for_inrange(10000)]

y_true=act_pos+act_neg=act_pos+ act_neg

# Xác định dự đoán

pred_pos=[0for_inrange(10)]+[1for_inrange(90)]=[0for_inrange(10)]+[1for_ inrange(90)]

pred_neg=[1for_inrange(30)]+[0for_inrange(9970)]=[1for_inrange(30)]+[0for _inrange(9970)]

y_pred=pred_pos+pred_neg=pred_pos+pred_neg

# Tính dự đoán

precision=precision_score(y_true,y_pred,average='binary')=precision_score(y_true, y_pred,average='binary')

In ('Độ chính xác: %.3f' %Precision)('Precision: %.3f'%precision)

Chạy ví dụ tính toán độ chính xác, phù hợp với tính toán thủ công của chúng tôi.

Tiếp theo, chúng ta có thể sử dụng cùng một hàm để tính độ chính xác cho vấn đề đa lớp với 1: 1: 100, với 100 ví dụ trong mỗi lớp thiểu số và 10.000 trong lớp đa số. Một mô hình dự đoán 50 điểm tích cực thực sự và 20 dương tính giả cho lớp 1 và 99 tích cực thực sự và 51 dương tính giả cho lớp 2.

Khi sử dụng hàm precision_score () để phân loại đa lớp, điều quan trọng là phải chỉ định các lớp thiểu số thông qua đối số nhãn của các nhãn hiệu và để thực hiện đặt đối số trung bình trên mạng thành ‘micro để đảm bảo tính toán được thực hiện như chúng ta mong đợi.

Ví dụ hoàn chỉnh được liệt kê dưới đây.

# Tính toán độ chính xác cho bộ dữ liệu 1: 1: 100 với 50TP, 20FP, 99TP, 51FP

từ sklearn.metrics nhập precision_scoresklearn.metrics import precision_score

# Xác định thực tế

act_pos1=[1for_inrange(100)]=[1for_in range(100)]

act_pos2=[2for_inrange(100)]=[2for_inrange(100)]

act_neg=[0for_inrange(10000)]=[0for _inrange(10000)]

y_true=act_pos1+act_pos2+act_neg=act_pos1+act_pos2+act_neg

# Xác định dự đoán

pred_pos1=[0for_inrange(50)]+[1for_inrange(50)]= [0for_inrange(50)]+[1for_inrange(50)]

pred_pos2=[0for_inrange(1)]+[2for_inrange(99)] =[0for_inrange(1)]+[2for_inrange(99)]

pred_neg=[1for_inrange(20)]+[2for_inrange(51)]+[0for_inrange(9929)] =[1for_inrange(20)]+[2for_inrange(51)] +[0for_inrange(9929)]

y_pred=pred_pos1+pred_pos2+pred_neg=pred_pos1+pred_pos2+pred_neg

# Tính dự đoán

precision=precision_score(y_true,y_pred,labels=[1,2],average='micro')=precision_score(y_true,y_pred,labels=[1,2],average='micro')

In ('Độ chính xác: %.3f' %Precision)('Precision: %.3f' %precision)

Một lần nữa, chạy ví dụ tính toán độ chính xác cho ví dụ đa lớp phù hợp với tính toán thủ công của chúng tôi.

Nhớ lại để phân loại mất cân bằng

Nhớ lại là một số liệu định lượng số lượng dự đoán tích cực chính xác được đưa ra từ tất cả các dự đoán tích cực có thể được đưa ra.

Không giống như độ chính xác mà chỉ nhận xét về các dự đoán tích cực chính xác trong tất cả các dự đoán tích cực, việc thu hồi cung cấp một dấu hiệu của các dự đoán tích cực bị bỏ lỡ.

Theo cách này, thu hồi cung cấp một số khái niệm về phạm vi bảo hiểm của lớp tích cực.

Đối với học tập mất cân bằng, việc thu hồi thường được sử dụng để đo lường phạm vi bảo hiểm của lớp thiểu số.

- Trang 27, Học tập mất cân bằng: Cơ sở, thuật toán và ứng dụng, 2013.

Nhớ lại phân loại nhị phân

Trong một vấn đề phân loại mất cân bằng với hai lớp, việc thu hồi được tính là số lượng tích cực thực sự chia cho tổng số tích cực thực sự và phủ định sai.

  • Nhớ lại = truepositives / (truepositives + falsenegative)

Kết quả là giá trị giữa 0,0 cho không thu hồi và 1.0 để thu hồi đầy đủ hoặc hoàn hảo.

Hãy để làm cho bê tông tính toán này với một số ví dụ.

Như trong phần trước, hãy xem xét một bộ dữ liệu với tỷ lệ thiểu số 1: 100 so với tỷ lệ đa số, với 100 ví dụ thiểu số và 10.000 ví dụ về lớp đa số.

Một mô hình đưa ra dự đoán và dự đoán 90 dự đoán của lớp tích cực một cách chính xác và 10 không chính xác. Chúng ta có thể tính toán thu hồi cho mô hình này như sau:

  • Nhớ lại = truepositives / (truepositives + falsenegative)
  • Kết quả là giá trị giữa 0,0 cho không thu hồi và 1.0 để thu hồi đầy đủ hoặc hoàn hảo.
  • Hãy để làm cho bê tông tính toán này với một số ví dụ.
  • Như trong phần trước, hãy xem xét một bộ dữ liệu với tỷ lệ thiểu số 1: 100 so với tỷ lệ đa số, với 100 ví dụ thiểu số và 10.000 ví dụ về lớp đa số.

Một mô hình đưa ra dự đoán và dự đoán 90 dự đoán của lớp tích cực một cách chính xác và 10 không chính xác. Chúng ta có thể tính toán thu hồi cho mô hình này như sau:

Nhớ lại = 90 / (90 + 10)

Nhớ lại = 90 /100

Nhớ lại = 0,9

  • Mô hình này có một thu hồi tốt.

Nhớ lại để phân loại nhiều lớp

Nhớ lại không giới hạn trong các vấn đề phân loại nhị phân.

  • Trong một vấn đề phân loại mất cân bằng với nhiều hơn hai lớp, việc thu hồi được tính là tổng số tích cực thực sự trên tất cả các lớp chia cho tổng các tích cực thực sự và âm tính sai trên tất cả các lớp.
  • Nhớ lại = Sum C trong c truepositives_c / sum c trong c (truepositives_c + falsenegative_c)
  • Như trong phần trước, hãy xem xét một bộ dữ liệu có tỷ lệ thiểu số thiểu số 1: 1: 100, đó là tỷ lệ 1: 1 cho mỗi lớp dương và tỷ lệ 1: 100 cho các lớp thiểu số so với lớp đa số và chúng tôi Có 100 ví dụ trong mỗi lớp thiểu số và 10.000 ví dụ trong lớp đa số.
  • Một mô hình dự đoán 77 ví dụ một cách chính xác và 23 không chính xác cho lớp 1 và 95 một cách chính xác và năm không chính xác cho lớp 2. Chúng ta có thể tính toán thu hồi cho mô hình này như sau:
  • Nhớ lại = (truepositives_1 + truepositives_2) / ((truepositives_1 + truepositives_2) + (falsenegative_1 + falsenegative_2)))

Nhớ lại = (77 + 95) / ((77 + 95) + (23 + 5))

Nhớ lại = 172 / (172 + 28)

Nhớ lại = 172 /200

Nhớ lại = 0,86

Tính toán nhớ lại với Scikit-learn

Điểm thu hồi có thể được tính toán bằng cách sử dụng hàm scikit-learn của rechiscore ().

Ví dụ: chúng ta có thể sử dụng chức năng này để tính toán thu hồi cho các kịch bản ở trên.sklearn.metrics import recall_score

Đầu tiên, chúng ta có thể xem xét trường hợp mất cân bằng 1: 100 với 100 và 10.000 ví dụ tương ứng và mô hình dự đoán 90 điểm tích cực thực sự và 10 tiêu cực sai.

act_pos=[1for_inrange(100)]=[1for_in range(100)]

act_neg=[0for_inrange(10000)]=[0for_inrange(10000)]

y_true=act_pos+act_neg=act_pos+ act_neg

# Xác định dự đoán

pred_pos=[0for_inrange(10)]+[1for_inrange(90)]=[0for_inrange(10)]+[1for_ inrange(90)]

pred_neg=[0for_inrange(10000)]=[0for_inrange(10000)]

y_pred=pred_pos+pred_neg=pred_pos +pred_neg

Ví dụ hoàn chỉnh được liệt kê dưới đây.

recall=recall_score(y_true,y_pred,average='binary')=recall_score(y_true,y_pred,average='binary')

# Tính toán thu hồi cho bộ dữ liệu 1: 100 với 90 TP và 10 FN('Recall: %.3f'% recall)

từ sklearn.metrics nhập khẩu recomme_score

# Xác định thực tế

# Tính toán thu hồi

Tính toán nhớ lại với Scikit-learn

Điểm thu hồi có thể được tính toán bằng cách sử dụng hàm scikit-learn của rechiscore ().

Ví dụ: chúng ta có thể sử dụng chức năng này để tính toán thu hồi cho các kịch bản ở trên.sklearn.metrics import recall_score

Đầu tiên, chúng ta có thể xem xét trường hợp mất cân bằng 1: 100 với 100 và 10.000 ví dụ tương ứng và mô hình dự đoán 90 điểm tích cực thực sự và 10 tiêu cực sai.

act_pos1=[1for_inrange(100)]=[1for_in range(100)]

act_pos2=[2for_inrange(100)]=[2for_inrange(100)]

act_neg=[0for_inrange(10000)]=[0for _inrange(10000)]

y_true=act_pos1+act_pos2+act_neg=act_pos1+act_pos2+act_neg

# Xác định dự đoán

pred_pos1=[0for_inrange(23)]+[1for_inrange(77)]= [0for_inrange(23)]+[1for_inrange(77)]

pred_pos2=[0for_inrange(5)]+[2for_inrange(95)] =[0for_inrange(5)]+[2for_inrange(95)]

pred_neg=[0for_inrange(10000)] =[0for_inrange(10000)]

y_pred=pred_pos1+pred_pos2+pred_neg=pred_pos1+pred_pos2+pred_neg

# Tính toán thu hồi

recall=recall_score(y_true,y_pred,labels=[1,2],average='micro')=recall_score(y_true,y_pred,labels=[1,2],average='micro')

in ('Nhớ lại: %.3f' %thu hồi)('Recall: %.3f'% recall)

Một lần nữa, chạy ví dụ tính toán thu hồi cho ví dụ đa lớp phù hợp với tính toán thủ công của chúng tôi.

Độ chính xác so với thu hồi để phân loại mất cân bằng

Bạn có thể quyết định sử dụng độ chính xác hoặc nhớ lại về vấn đề phân loại mất cân bằng của bạn.

Tối đa hóa độ chính xác sẽ giảm thiểu số lượng dương tính giả, trong khi tối đa hóa việc thu hồi sẽ giảm thiểu số lượng âm tính sai.

  • Độ chính xác: Thích hợp khi giảm thiểu dương tính giả là trọng tâm.: Appropriate when minimizing false positives is the focus.
  • Nhớ lại: thích hợp khi giảm thiểu tiêu cực sai là trọng tâm.: Appropriate when minimizing false negatives is the focus.

Đôi khi, chúng tôi muốn dự đoán tuyệt vời của lớp tích cực. Chúng tôi muốn độ chính xác cao và thu hồi cao.

Điều này có thể là một thách thức, vì thường việc thu hồi thường đến với chi phí giảm về độ chính xác.

Trong các bộ dữ liệu mất cân bằng, mục tiêu là cải thiện việc thu hồi mà không làm tổn thương độ chính xác. Tuy nhiên, các mục tiêu này thường mâu thuẫn, vì để tăng TP cho lớp thiểu số, số lượng FP cũng thường tăng, dẫn đến giảm độ chính xác.

- Trang 55, Học tập mất cân bằng: Cơ sở, thuật toán và ứng dụng, 2013.

Tuy nhiên, thay vì chọn một biện pháp này hay biện pháp khác, chúng ta có thể chọn một số liệu mới kết hợp cả độ chính xác và thu hồi thành một điểm.

Phương thức F để phân loại mất cân bằng

Độ chính xác phân loại được sử dụng rộng rãi vì nó là một biện pháp duy nhất được sử dụng để tóm tắt hiệu suất mô hình.

Phương tiện F cung cấp một cách để kết hợp cả độ chính xác và thu hồi thành một biện pháp duy nhất nắm bắt cả hai thuộc tính.

Một mình, không chính xác hoặc nhớ lại nói lên toàn bộ câu chuyện. Chúng ta có thể có độ chính xác tuyệt vời với việc thu hồi khủng khiếp, hoặc xen kẽ, độ chính xác khủng khiếp với sự thu hồi tuyệt vời. F-measure cung cấp một cách để thể hiện cả hai mối quan tâm với một điểm số.

Một khi độ chính xác và thu hồi đã được tính toán cho một vấn đề phân loại nhị phân hoặc đaass, hai điểm có thể được kết hợp thành tính toán của phép đo F.

Biện pháp F truyền thống được tính như sau:

  • F-measure = (2 * độ chính xác * nhớ lại) / (độ chính xác + nhớ lại)

Đây là giá trị trung bình hài hòa của hai phân số. Điều này đôi khi được gọi là điểm F hoặc điểm F1 và có thể là số liệu phổ biến nhất được sử dụng trong các vấn đề phân loại mất cân bằng.

Các phép đo F1, có trọng lượng chính xác và thu hồi như nhau, là biến thể thường được sử dụng nhất khi học từ dữ liệu mất cân bằng.

- Trang 27, Học tập mất cân bằng: Cơ sở, thuật toán và ứng dụng, 2013.

Giống như độ chính xác và thu hồi, điểm số F kém là 0,0 và điểm F-đo F tốt nhất hoặc hoàn hảo

Ví dụ: điểm chính xác và thu hồi hoàn hảo sẽ dẫn đến điểm số F hoàn hảo:

  • F-measure = (2 * độ chính xác * nhớ lại) / (độ chính xác + nhớ lại)
  • Đây là giá trị trung bình hài hòa của hai phân số. Điều này đôi khi được gọi là điểm F hoặc điểm F1 và có thể là số liệu phổ biến nhất được sử dụng trong các vấn đề phân loại mất cân bằng.
  • Các phép đo F1, có trọng lượng chính xác và thu hồi như nhau, là biến thể thường được sử dụng nhất khi học từ dữ liệu mất cân bằng.
  • - Trang 27, Học tập mất cân bằng: Cơ sở, thuật toán và ứng dụng, 2013.

Giống như độ chính xác và thu hồi, điểm số F kém là 0,0 và điểm F-đo F tốt nhất hoặc hoàn hảo

Ví dụ: điểm chính xác và thu hồi hoàn hảo sẽ dẫn đến điểm số F hoàn hảo:

F-measure = (2 * 1.0 * 1.0) / (1.0 + 1.0)

F-measure = (2 * 1.0) / 2.0

  • F-đo = 1.0
  • Hãy cùng làm cho bê tông tính toán này với một ví dụ hoạt động.
  • Hãy xem xét một bộ dữ liệu phân loại nhị phân với tỷ lệ thiểu số 1: 100 so với tỷ lệ đa số, với 100 ví dụ thiểu số và 10.000 ví dụ về lớp đa số.

Hãy xem xét một mô hình dự đoán 150 ví dụ cho lớp dương, 95 là chính xác (dương tính thật), có nghĩa là năm đã bị bỏ lỡ (âm tính giả) và 55 không chính xác (dương tính giả).

  • Chúng ta có thể tính toán độ chính xác như sau:
  • Độ chính xác = truepositives / (truepositives + falsePositives)
  • Độ chính xác = 95 / (95 + 55)

Độ chính xác = 0,633

Chúng ta có thể tính toán thu hồi như sau:

  • F-measure = (2 * độ chính xác * nhớ lại) / (độ chính xác + nhớ lại)
  • Đây là giá trị trung bình hài hòa của hai phân số. Điều này đôi khi được gọi là điểm F hoặc điểm F1 và có thể là số liệu phổ biến nhất được sử dụng trong các vấn đề phân loại mất cân bằng.
  • Các phép đo F1, có trọng lượng chính xác và thu hồi như nhau, là biến thể thường được sử dụng nhất khi học từ dữ liệu mất cân bằng.
  • - Trang 27, Học tập mất cân bằng: Cơ sở, thuật toán và ứng dụng, 2013.
  • Giống như độ chính xác và thu hồi, điểm số F kém là 0,0 và điểm F-đo F tốt nhất hoặc hoàn hảo

Ví dụ: điểm chính xác và thu hồi hoàn hảo sẽ dẫn đến điểm số F hoàn hảo:

F-measure = (2 * 1.0 * 1.0) / (1.0 + 1.0)

F-measure = (2 * 1.0) / 2.0

F-đo = 1.0

Hãy cùng làm cho bê tông tính toán này với một ví dụ hoạt động.

Hãy xem xét một bộ dữ liệu phân loại nhị phân với tỷ lệ thiểu số 1: 100 so với tỷ lệ đa số, với 100 ví dụ thiểu số và 10.000 ví dụ về lớp đa số.

Hãy xem xét một mô hình dự đoán 150 ví dụ cho lớp dương, 95 là chính xác (dương tính thật), có nghĩa là năm đã bị bỏ lỡ (âm tính giả) và 55 không chính xác (dương tính giả).

Chúng ta có thể tính toán độ chính xác như sau:sklearn.metrics import f1_score

Độ chính xác = truepositives / (truepositives + falsePositives)

act_pos=[1for_inrange(100)]=[1for_in range(100)]

act_neg=[0for_inrange(10000)]=[0for_inrange(10000)]

y_true=act_pos+act_neg=act_pos+ act_neg

# Xác định dự đoán

pred_pos=[0for_inrange(5)]+[1for_inrange(95)]=[0for_inrange(5)]+[1for_ inrange(95)]

pred_neg=[1for_inrange(55)]+[0for_inrange(9945)]=[1for_inrange(55)]+[0for _inrange(9945)]

y_pred=pred_pos+pred_neg=pred_pos+pred_neg

# Tính điểm

score=f1_score(y_true,y_pred,average='binary')=f1_score(y_true, y_pred,average='binary')

in ('f-measure: %.3f' %điểm)('F-Measure: %.3f'%score)

Chạy ví dụ tính toán độ F, phù hợp với tính toán thủ công của chúng tôi, trong một số lỗi làm tròn nhỏ.

Đọc thêm

Phần này cung cấp nhiều tài nguyên hơn về chủ đề nếu bạn đang muốn đi sâu hơn.

Hướng dẫn

  • Cách tính độ chính xác, nhớ lại, F1 và nhiều hơn nữa cho các mô hình học tập sâu
  • Cách sử dụng các đường cong ROC và các đường cong chính xác để phân loại trong Python

Giấy tờ

  • Một phân tích có hệ thống các biện pháp hiệu suất cho các nhiệm vụ phân loại, 2009.

Sách

  • Học tập mất cân bằng: Cơ sở, thuật toán và ứng dụng, 2013.
  • Học hỏi từ bộ dữ liệu mất cân bằng, 2018.

API

  • sklearn.metrics.precision_score API.
  • Sklearn.Metrics.Recall_Score API.
  • sklearn.metrics.f1_score API.

Bài viết

  • Ma trận nhầm lẫn, Wikipedia.
  • Độ chính xác và nhớ lại, Wikipedia.
  • Điểm F1, Wikipedia.

Bản tóm tắt

Trong hướng dẫn này, bạn đã phát hiện ra cách tính toán và phát triển trực giác cho độ chính xác và thu hồi để phân loại mất cân bằng.

Cụ thể, bạn đã học được:

  • Độ chính xác định lượng số lượng dự đoán lớp tích cực thực sự thuộc về lớp dương.
  • Nhớ lại định lượng số lượng dự đoán lớp tích cực được đưa ra trong tất cả các ví dụ tích cực trong bộ dữ liệu.
  • F-MEASURE cung cấp một điểm duy nhất cân bằng cả mối quan tâm của độ chính xác và thu hồi trong một số.

Bạn có câu hỏi nào không? Đặt câu hỏi của bạn trong các ý kiến ​​dưới đây và tôi sẽ cố gắng hết sức để trả lời.
Ask your questions in the comments below and I will do my best to answer.

Nhận một xử lý về phân loại mất cân bằng!

Hướng dẫn how do you calculate precision and recall in python? - làm thế nào để bạn tính toán độ chính xác và thu hồi trong python?

Phát triển các mô hình học tập mất cân bằng trong vài phút

... Chỉ với một vài dòng mã Python

Khám phá cách trong Sách điện tử mới của tôi: Phân loại mất cân bằng với Python
Imbalanced Classification with Python

Nó cung cấp các hướng dẫn tự học và các dự án từ đầu đến cuối: Số liệu hiệu suất, phương pháp lấy mẫu, SMOTE, chuyển động ngưỡng, hiệu chuẩn xác suất, thuật toán nhạy cảm với chi phí và nhiều hơn nữa ...self-study tutorials and end-to-end projects on:
Performance Metrics, Undersampling Methods, SMOTE, Threshold Moving, Probability Calibration, Cost-Sensitive Algorithms
and much more...

Mang các phương pháp phân loại mất cân bằng cho các dự án học máy của bạn

Xem những gì bên trong

Làm thế nào để bạn tính toán độ chính xác trong Python?

Độ chính xác là tỷ lệ TP / (TP + FP) trong đó TP là số lượng dương tính thực sự và FP số lượng dương tính giả. Độ chính xác là trực giác khả năng của trình phân loại không gắn nhãn là một mẫu dương tính âm. Giá trị tốt nhất là 1 và giá trị tồi tệ nhất là 0. Đọc thêm trong Hướng dẫn sử dụng. where tp is the number of true positives and fp the number of false positives. The precision is intuitively the ability of the classifier not to label as positive a sample that is negative. The best value is 1 and the worst value is 0. Read more in the User Guide.

Làm thế nào để bạn tính toán độ chính xác và nhớ lại?

F-measure = (2 * độ chính xác * nhớ lại) / (độ chính xác + thu hồi) f-measure = (2 * 1.0 * 1.0) / (1.0 + 1.0) f-measure = (2 * 1.0) / 2.0 ...
Độ chính xác = truepositives / (truepositives + falsePositives).
Độ chính xác = 95 / (95 + 55).
Độ chính xác = 0,633 ..

Làm thế nào để bạn tính toán thu hồi và độ chính xác từ ma trận nhầm lẫn trong Python?

Ma trận nhầm lẫn cung cấp cho bạn rất nhiều thông tin, nhưng đôi khi bạn có thể thích một số liệu ngắn gọn hơn ...
Độ chính xác.độ chính xác = (tp) / (tp+fp) tp là số lượng tích cực thực và fp là số lượng dương tính giả.....
Hồi tưởng.nhớ lại = (tp) / (tp+fn).

Làm thế nào để Python tính toán độ chính xác của các mô hình?

Độ chính xác cân bằng là một số liệu chúng ta có thể sử dụng để đánh giá hiệu suất của mô hình phân loại ...
Độ 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 ..