Python tính điểm chính xác như thế nào?

Độ chính xác và Thu hồi là các số liệu được sử dụng để đánh giá các thuật toán học máy vì chỉ độ chính xác thôi là không đủ để hiểu hiệu suất của các mô hình phân loại

Giả sử chúng ta đã phát triển một mô hình phân loại để chẩn đoán một căn bệnh hiếm gặp, chẳng hạn như ung thư. Chỉ 5% bệnh nhân ung thư, mô hình dự đoán tất cả bệnh nhân khỏe mạnh sẽ có độ chính xác 95%. Nếu chỉ 0. 1% bệnh nhân bị ung thư, cùng một mô hình dự đoán tất cả bệnh nhân đều khỏe mạnh đạt 99. độ chính xác 9%. Tất nhiên, "độ chính xác" là sai lệch. Cả hai mô hình này đều vô dụng để phát hiện bệnh vì chúng bỏ sót tất cả các bệnh ung thư. Chúng tôi cần các số liệu khác giúp chúng tôi cân nhắc chi phí của các loại lỗi khác nhau

Chúng ta có thể tạo một ma trận nhầm lẫn để biểu thị kết quả của phân loại nhị phân

Learn Data Science with

Tiếp theo, chúng tôi xác định các biến dự đoán và mục tiêu

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

Bây giờ, chúng ta có thể định nghĩa một bộ phân loại đơn giản

def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

Ở đây, chúng ta sẽ tạo hàm để lấy các giá trị Accuracy, Precision, Recall và F1 Score

def calculate_metrics(predicted, actual): TP, FP, TN, FN = 0, 0, 0, 0 for i in range(len(predicted)): if (predicted[i] == 0) & (actual[i] == 0): TP += 1 elif (predicted[i] == 0) & (actual[i] == 1): FP += 1 elif (predicted[i] == 1) & (actual[i] == 1): TN += 1 else: FN += 1 accuracy = (TP + TN) / (TP + FP + TN + FN) precision = (TP) / (TP + FP) recall = (TP) / (TP + FN) f1_score = (2 * precision * recall) / (precision + recall) return accuracy, precision, recall, f1_score

Learn Data Science with

Bây giờ chúng ta sẽ áp dụng trình phân loại được xác định ở trên cho các giá trị ngưỡng khác nhau. Chúng tôi đã xác định 20 giá trị ngưỡng khác nhau bằng cách sử dụng def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

1 và một mảng cho từng chỉ số. Sau đó, chúng tôi lặp qua từng giá trị ngưỡng, nhận dự đoán từ trình phân loại của chúng tôi, nhận từng chỉ số và in một cột cho từng kết quả

thresh = np.linspace(0,1,20) accuracy = np.zeros(len(thresh)) precision = np.zeros(len(thresh)) recall = np.zeros(len(thresh)) f1_score = np.zeros(len(thresh)) print('Threshold \t Accuracy \t Precision\t Recall \t F1 Score ') for i in range(len(thresh)): prediction = a_simple_classifier(x, thresh[i]) accuracy[i], precision[i], recall[i], f1_score[i]=calculate_metrics(prediction, y) print(f'{thresh[i]: .2f}\t\t {accuracy[i]: .2f}\t\t {precision[i]: .2f}\t\t {recall[i]: .2f}\t\t {f1_score[i]: .2f}')

Learn Data Science with

Ngoài

Threshold Accuracy Precision Recall F1 Score 0.00 0.37 0.37 1.00 0.54 0.05 0.41 0.39 1.00 0.56 0.11 0.55 0.45 0.99 0.62 0.16 0.78 0.63 0.94 0.76 0.21 0.86 0.81 0.83 0.82 0.26 0.86 0.96 0.67 0.79 0.32 0.83 0.99 0.56 0.71 0.37 0.78 1.00 0.42 0.59 0.42 0.75 1.00 0.32 0.49 0.47 0.70 1.00 0.19 0.32 0.53 0.66 1.00 0.10 0.18 0.58 0.65 1.00 0.07 0.12 0.63 0.65 1.00 0.06 0.11 0.68 0.64 1.00 0.03 0.06 0.74 0.63 1.00 0.02 0.04 0.79 0.63 1.00 0.02 0.04 0.84 0.63 1.00 0.01 0.03 0.89 0.63 1.00 0.01 0.02 0.95 0.63 1.00 0.01 0.02 1.00 0.63 1.00 0.00 0.01

Learn Data Science with

Kết quả cho thấy tác động của việc thay đổi ngưỡng. Tăng ngưỡng sẽ tăng cường Độ chính xác và giảm Thu hồi. Độ chính xác cân bằng Điểm F1 với Thu hồi cao nhất ở ngưỡng. 21

Biểu đồ sau biểu đồ Chính xác so với Thu hồi để xem các thay đổi đối với nhau

import matplotlib.pyplot as plt plt.plot(precision, recall) plt.xlabel('Precision') plt.ylabel('Recall') plt.title('Precision versus Recall') plt.show()

Learn Data Science with

KẾT QUẢ

Learn Data Science with

Bây giờ chúng ta sẽ thực hiện năm bước để tạo mô hình và lấy các số liệu cần thiết

Bước 1. Xác định các biến giải thích và biến mục tiêu

X = dataset['data'] y = dataset['target']

Learn Data Science with

Bước 2. Áp dụng hoạt động chuẩn hóa cho sự ổn định số

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

0

Bước 3. Khớp mô hình hồi quy logistic với dữ liệu tàu

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

1

Bước 4. Đưa ra dự đoán về dữ liệu bằng xác thực chéo

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

2

Bước 5. Tính toán Ma trận Nhầm lẫn theo các giá trị thực tế và dự đoán

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

3

Cuối cùng, chúng ta có thể tạo một bản đồ nhiệt để hiển thị ma trận nhầm lẫn

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

4

Ngoài ra, hãy in báo cáo phân loại để quan sát các số liệu đánh giá

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

5

Ngoài

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

6

Từ báo cáo phân loại, chúng ta có thể quan sát giá trị của các chỉ số đánh giá cho từng lớp và giá trị trung bình của từng chỉ số. Ví dụ: độ chính xác và độ thu hồi của mô hình cho Lớp 0 đều là 1. 00, có nghĩa là mô hình có thể dự đoán chính xác tất cả các trường hợp của Lớp 0

Lưu ý rằng báo cáo đưa ra số lượng phiên bản cho mỗi lớp. def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

2 và def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

3 lần lượt là giá trị trung bình không có trọng số và giá trị trung bình có trọng số so với mức hỗ trợ

Hơn nữa, thư viện def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

4 có các chức năng riêng biệt cho từng chỉ số đánh giá mà bạn có thể tìm thấy trong tài liệu của họ

Dưới đây là các ví dụ về cách tính riêng từng chỉ số bằng cách sử dụng def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

4

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

7

Ngoài

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

8

Các số liệu đánh giá trên đưa ra mức trung bình của các lớp. Nếu chúng ta muốn quan sát độ chính xác cho từng lớp riêng biệt, chúng ta cần xác định tham số def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

6. Một ví dụ cho Lớp 1 được đưa ra dưới đây

x = dataset['data'][:,3] # Column 3 is mean area of the tumor y = dataset['target'] # Apply min-max normalization x = (x - np.min(x)) / (np.max(x) - np.min(x) )

Learn Data Science with

9

Ngoài

def a_simple_classifier(x, thres = 0.5): predicted = np.zeros(len(x)) for i in range(len(x)): if x[i] < thres: predicted[i] = 1 return predicted

Learn Data Science with

0

Bắt đầu học miễn phí

Nhận thông tin cập nhật trong hộp thư đến của bạn

Tham gia cùng hơn 7.500 người học khoa học dữ liệu

Bài viết gần đây

Ưu đãi khóa học tốt nhất cho Thứ Sáu Đen và Thứ Hai Điện Tử 2022Hàm sigmoidchấm sản phẩm7 khóa học về trí tuệ nhân tạo (AI) tốt nhất năm 2023

7 khóa học về trí tuệ nhân tạo (AI) tốt nhất

Các khóa học hàng đầu bạn có thể tham gia ngay hôm nay để bắt đầu hành trình vào lĩnh vực Trí tuệ nhân tạo

Tìm hiểu thêm

Nhận thông tin cập nhật trong hộp thư đến của bạn

Tham gia cùng hơn 7.500 người học khoa học dữ liệu

Gặp gỡ các tác giả

Fatih Karabiber Ph. D. trong Kỹ thuật máy tính, Nhà khoa học dữ liệu

Phó Giáo sư Kỹ thuật Máy tính. Tác giả/đồng tác giả của hơn 30 ấn phẩm tạp chí. Giảng viên các khóa học sau đại học/đại học. Người hướng dẫn luận văn tốt nghiệp. Tư vấn cho các công ty CNTT

Python tính điểm chính xác như thế nào?

Cách tính toán độ 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

Điểm chính xác và điểm thu hồi trong Python là gì?

Độ chính xác ( ) được định nghĩa là số lần xác thực đúng ( ) trên số lần xác thực đúng cộng với số lần xác định sai ( ). Nhớ lại ( ) được định nghĩa là số lần khẳng định đúng ( ) trên số lần khẳng định đúng cộng với số lần phủ định sai ( )

Độ chính xác được tính như thế nào?

Độ chính xác được tính bằng tỷ lệ giữa số lượng mẫu Dương tính được phân loại chính xác trên tổng số mẫu được phân loại là Dương tính (hoặc chính xác . Độ chính xác đo lường độ chính xác của mô hình trong việc phân loại một mẫu là dương tính.

Hàm nào được sử dụng để tính toán độ chính xác của mô hình trong Python?

Các bước tính toán độ chính xác trên tập dữ liệu bằng Python . Thực hiện phân tích và làm sạch dữ liệu bằng cách sử dụng phân tích giá trị còn thiếu, kỹ thuật phát hiện ngoại lệ. Tách tập dữ liệu thành dữ liệu huấn luyện và kiểm tra bằng hàm train_test_split(). read_csv() function. Perform data analysis and cleaning using missing value analysis, outlier detection techniques. Split the dataset into training and test data using train_test_split() function.

Chủ đề