Logo Zephyrnet

Điểm AUC một phần: Số liệu tốt hơn cho phân loại nhị phân

Ngày:

Giới thiệu

Điểm số AUC (Diện tích dưới đường cong) một phần là một công cụ có giá trị để đánh giá hiệu suất của các mô hình phân loại nhị phân, đặc biệt khi phân phối lớp bị mất cân bằng cao. Không giống như điểm AUC truyền thống, điểm AUC một phần tập trung vào một vùng cụ thể của đường cong ROC (Đặc điểm hoạt động của máy thu), đưa ra đánh giá chi tiết hơn về hiệu suất của mô hình.

"điểm AUC một phần

Bài đăng trên blog này sẽ đi sâu vào điểm AUC một phần là gì, cách chúng được tính toán và lý do tại sao chúng lại cần thiết để đánh giá bộ dữ liệu mất cân bằng. Chúng tôi cũng sẽ bao gồm các ví dụ có liên quan và một ví dụ mã sử dụng Python để giúp làm cho các khái niệm này rõ ràng hơn.

Mục tiêu học tập:

  1. Tìm hiểu kiến ​​thức cơ bản về Điểm AUC.
  2. Nhược điểm của Điểm AUC là gì và cách khắc phục chúng?
  3. Cách tính điểm từng phần và mục tiêu của chúng.

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu.

Mục lục

Điểm AUC có nghĩa là gì?

Điểm số AUC (Diện tích dưới đường cong) là thước đo thường được sử dụng để đánh giá hiệu suất của các mô hình phân loại nhị phân. Điểm AUC truyền thống tính toán diện tích bên dưới đường cong ROC (Đặc tính hoạt động của máy thu), biểu thị Tỷ lệ dương thực (TPR) so với Tỷ lệ dương sai (FPR) cho tất cả các giá trị ngưỡng có thể. Điểm nằm trong khoảng từ 0.5 đối với mô hình ngẫu nhiên đến 1 đối với mô hình hoàn hảo, với các giá trị càng gần 1 cho biết hiệu suất càng tốt.

"điểm AUC một phần

Hạn chế của điểm AUC

Tuy nhiên, trong các ứng dụng trong thế giới thực, sự phân bố lớp của biến mục tiêu có thể rất mất cân bằng, nghĩa là một lớp phổ biến hơn nhiều so với lớp kia. Trong những trường hợp này, điểm AUC truyền thống có thể không cung cấp đánh giá tốt về hiệu suất của mô hình vì nó tổng hợp các giá trị ngưỡng tổng thể về hiệu suất và không tính đến sự mất cân bằng trong phân phối lớp.

Vượt qua nhược điểm

Đây là lúc một phần điểm AUC phát huy tác dụng. Không giống như điểm số AUC truyền thống, chúng tập trung vào một vùng cụ thể của đường cong ROC, cung cấp đánh giá chi tiết hơn về hiệu suất của mô hình. Điều này cho phép đánh giá hiệu suất của mô hình chính xác hơn, đặc biệt là trong trường hợp phân phối lớp mất cân bằng cao.

Ví dụ: trong vấn đề phát hiện gian lận, điểm AUC từng phần có thể được tính cho khu vực có FPR nhỏ hơn một giá trị cụ thể, chẳng hạn như 0.05. Điều này cung cấp một đánh giá về hiệu suất của mô hình trong việc phát hiện các trường hợp gian lận trong khi bỏ qua hiệu suất trên các trường hợp lớp đa số. Thông tin này có thể được sử dụng để đưa ra quyết định sáng suốt về việc sử dụng mô hình nào, cách cải thiện mô hình và cách điều chỉnh các giá trị ngưỡng cho dự đoán.

Tính một phần điểm AUC

Việc tính điểm AUC từng phần liên quan đến việc chia đường cong ROC thành các khoảng và sau đó tính AUC cho từng khoảng. Khoảng thời gian có thể được xác định theo FPR hoặc TPR và kích thước của khoảng thời gian có thể được điều chỉnh để kiểm soát mức độ chi tiết của đánh giá. Điểm AUC một phần cho một khoảng cụ thể được tính bằng tổng diện tích của các hình chữ nhật được tạo bởi các ranh giới của khoảng và đường cong ROC trong khoảng đó.

Ví dụ: để tính điểm AUC từng phần cho vùng có FPR nhỏ hơn 0.05,

  1. trước tiên chúng tôi sẽ chia đường cong ROC thành các khoảng cho khoảng cụ thể trong đó FPR nhỏ hơn 0.05.
  2. Sau đó, chúng tôi sẽ tính tổng diện tích của các hình chữ nhật được tạo bởi các ranh giới khoảng và đường cong ROC trong khoảng đó. Điều này sẽ cung cấp cho chúng tôi một phần điểm AUC cho khu vực đó.

Ngoài ví dụ về phát hiện gian lận, một phần điểm AUC có thể được sử dụng trong nhiều ứng dụng thực tế khác như chẩn đoán y tế, chấm điểm tín dụng và tiếp thị.

  1. Trong chẩn đoán y tế, chúng có thể được sử dụng để đánh giá hiệu suất của một mô hình trong việc phát hiện một căn bệnh cụ thể trong khi bỏ qua hiệu suất của nó đối với những người khỏe mạnh.
  2. Trong chấm điểm tín dụng, chúng có thể được sử dụng để đánh giá hiệu suất của một mô hình trong việc phát hiện những người xin vay có rủi ro cao trong khi bỏ qua hiệu suất của nó đối với những người xin vay có rủi ro thấp.
  3. Trong tiếp thị, chúng có thể được sử dụng để đánh giá hiệu suất của một mô hình trong việc dự đoán khách hàng nào có nhiều khả năng mua hàng nhất trong khi bỏ qua hiệu suất của mô hình đối với những khách hàng không có khả năng mua hàng.

Tóm lại, điểm AUC một phần là một công cụ quan trọng để đánh giá hiệu suất của các mô hình phân loại nhị phân, đặc biệt trong trường hợp phân phối lớp bị mất cân bằng cao. Bằng cách tập trung vào một vùng cụ thể của đường cong ROC, một phần điểm AUC cung cấp đánh giá chi tiết hơn về hiệu suất của mô hình, có thể được sử dụng để đưa ra quyết định sáng suốt về việc lựa chọn, cải thiện và điều chỉnh ngưỡng mô hình. Hiểu chúng và cách sử dụng chúng là một phần quan trọng của quá trình đánh giá các mô hình phân loại nhị phân và có thể dẫn đến việc ra quyết định chính xác và hiệu quả hơn trong các ứng dụng thực tế khác nhau.

Điều quan trọng cần lưu ý là điểm AUC một phần không phải là sự thay thế cho điểm AUC truyền thống mà là một công cụ bổ sung được sử dụng cùng với điểm AUC truyền thống. Mặc dù chúng cung cấp đánh giá chi tiết hơn về hiệu suất của mô hình trong các vùng cụ thể của đường cong ROC, điểm AUC truyền thống cung cấp đánh giá toàn diện hơn về hiệu suất tổng thể của mô hình.

Khi đánh giá các mô hình phân loại nhị phân, tốt nhất là sử dụng cả điểm AUC truyền thống và điểm AUC một phần để có được bức tranh hoàn chỉnh về hiệu suất của mô hình. Điều này có thể được thực hiện bằng cách vẽ đồ thị đường cong ROC và tính cả điểm AUC truyền thống và điểm AUC từng phần cho các vùng cụ thể của đường cong.

Điểm AUC một phần trong Python

Bây giờ, hãy xem cách tính một phần điểm AUC trong Python. Cách dễ nhất để tính một phần điểm AUC trong Python là sử dụng hàm “roc_auc_score” từ thư viện scikit-learn. Hàm này tính điểm AUC truyền thống theo mặc định, nhưng nó cũng có thể được sử dụng để tính một phần điểm AUC bằng cách chuyển tham số “đường cong”.

Ví dụ: giả sử chúng ta có mô hình phân loại nhị phân và các dự đoán của mô hình đó trên dữ liệu thử nghiệm. Chúng ta có thể sử dụng đoạn mã sau để tính điểm AUC truyền thống:

from sklearn.metrics import roc_auc_score y_true = [0, 0, 1, 1] y_scores = [0.1, 0.4, 0.35, 0.8] auc = roc_auc_score(y_true, y_scores) print('AUC:', auc)

Để tính điểm AUC một phần cho khu vực có FPR nhỏ hơn 0.05, chúng ta có thể chuyển vào tham số “max_fpr” như sau

từ sklearn.metrics nhập roc_auc_score y_true = [0, 0, 1, 1] y_scores = [0.1, 0.4, 0.35, 0.8] auc = roc_auc_score(y_true, y_scores, max_fpr=0.05) print('AUC Một phần:', auc)

Kết luận

Tóm lại, nó cung cấp một đánh giá chi tiết hơn về hiệu suất của các mô hình phân loại nhị phân, đặc biệt trong trường hợp phân phối lớp mất cân bằng cao. Hiểu và sử dụng chúng có thể nâng cao đáng kể việc đánh giá các mô hình phân loại nhị phân trong bộ dữ liệu mất cân bằng.

  • Bằng cách kết hợp điểm số AUC truyền thống và một phần AUC, chúng tôi có thể có được bức tranh hoàn chỉnh về hiệu suất của mô hình và đưa ra quyết định sáng suốt về lựa chọn, cải tiến và điều chỉnh ngưỡng mô hình.
  • Với sự trợ giúp của thư viện scikit-learning của Python, việc tính điểm AUC từng phần là một quy trình đơn giản và thuận tiện.
  • Khi đánh giá các mô hình phân loại nhị phân, tốt nhất là sử dụng cả điểm AUC truyền thống và điểm AUC một phần để có được bức tranh hoàn chỉnh về hiệu suất của mô hình.

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định riêng của Tác giả.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img