Python tính toán ma trận nhầm lẫn từ đầu như thế nào?

Bạn có thể sử dụng gói seaborn trong Python để hiển thị ma trận sống động hơn. Để hoàn thành nhiệm vụ này, bạn sẽ cần thêm hai thành phần sau vào mã

  • nhập seaborn là sn
  • sn. bản đồ nhiệt [confusion_matrix, annot=True]

Bạn cũng cần sử dụng gói matplotlib để vẽ kết quả bằng cách thêm

  • nhập matplotlib. pyplot dưới dạng plt
  • plt. buổi bieu diễn[]

Đặt mọi thứ lại với nhau

import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt

data = {'y_actual':    [1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
        'y_predicted': [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0]
        }

df = pd.DataFrame[data]
confusion_matrix = pd.crosstab[df['y_actual'], df['y_predicted'], rownames=['Actual'], colnames=['Predicted']]

sn.heatmap[confusion_matrix, annot=True]
plt.show[]

Theo tùy chọn, bạn cũng có thể thêm tổng số ở lề của ma trận nhầm lẫn bằng cách đặt margins=True

Vì vậy, mã Python của bạn sẽ trông như thế này

import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt

data = {'y_actual':    [1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
        'y_predicted': [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0]
        }

df = pd.DataFrame[data]
confusion_matrix = pd.crosstab[df['y_actual'], df['y_predicted'], rownames=['Actual'], colnames=['Predicted'], margins=True]

sn.heatmap[confusion_matrix, annot=True]
plt.show[]

Nhận số liệu thống kê bổ sung bằng pandas_ml

Bạn có thể in các số liệu thống kê bổ sung [chẳng hạn như Độ chính xác] bằng cách sử dụng gói pandas_ml trong Python. Bạn có thể cài đặt gói pandas_ml bằng PIP

pip install pandas_ml

Sau đó, bạn sẽ cần thêm cú pháp sau vào mã

confusion_matrix = ConfusionMatrix[df['y_actual'], df['y_predicted']]
confusion_matrix.print_stats[]

Đây là mã hoàn chỉnh mà bạn có thể sử dụng để lấy số liệu thống kê bổ sung

import pandas as pd
from pandas_ml import ConfusionMatrix

data = {'y_actual':    [1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
        'y_predicted': [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0]
        }

df = pd.DataFrame[data]
confusion_matrix = ConfusionMatrix[df['y_actual'], df['y_predicted']]
confusion_matrix.print_stats[]

Chạy mã và bạn sẽ thấy các phép đo bên dưới [ lưu ý rằng nếu bạn gặp lỗi khi chạy mã, . Ví dụ: bạn có thể thay đổi phiên bản pandas thành 0. 23. 4 sử dụng lệnh này. pip cài đặt pandas==0. 23. 4].

    y_actual  y_predicted
0          1            1
1          0            1
2          0            0
3          1            1
4          0            0
5          1            1
6          0            1
7          0            0
8          1            1
9          0            0
10         1            0
11         0            0
0

ví dụ của chúng tôi

  • TP = Tích cực Đúng = 4
  • TN = True Phủ định = 5
  • FP = Tích cực sai = 2
  • FN = Phủ định sai = 1

Bạn cũng có thể quan sát TP, TN, FP và FN trực tiếp từ Ma trận nhầm lẫn

TN

5

FP

2

FN

1

TP.

4

Đối với dân số 12 người, Độ chính xác là

Độ chính xác = [TP+TN]/dân số = [4+5]/12 = 0. 75

Làm việc với dữ liệu phi số

Đến đây bạn đã thấy cách tạo Ma trận nhầm lẫn bằng cách sử dụng dữ liệu số. Nhưng nếu dữ liệu của bạn không phải là số thì sao?

Ví dụ: nếu dữ liệu của bạn chứa các giá trị không phải là số, chẳng hạn như 'Có' và 'Không' [thay vì '1' và '0'] thì sao?

Danh sách các nhãn để lập chỉ mục cho ma trận. Điều này có thể được sử dụng để sắp xếp lại hoặc chọn một tập hợp con các nhãn. Nếu cho trước None, những cái xuất hiện ít nhất một lần trong y_true hoặc y_pred được sử dụng theo thứ tự đã sắp xếp

sample_weight hình dạng giống như mảng [n_samples,], default=None

trọng lượng mẫu

Mới trong phiên bản 0. 18

chuẩn hóa {'true', 'pred', 'all'}, default=None

Bình thường hóa ma trận nhầm lẫn trên các điều kiện thực [hàng], dự đoán [cột] hoặc toàn bộ dân số. Nếu Không, ma trận nhầm lẫn sẽ không được chuẩn hóa

Trả về . C ndarray của hình dạng [n_classes, n_classes]

Ma trận nhầm lẫn có mục nhập hàng thứ i và cột thứ j cho biết số lượng mẫu có nhãn thực là loại thứ i và nhãn dự đoán là loại thứ j

Xem thêm

ConfusionMatrixDisplay.from_estimator

Vẽ ma trận nhầm lẫn cho một công cụ ước tính, dữ liệu và nhãn

import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt

data = {'y_actual':    [1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
        'y_predicted': [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0]
        }

df = pd.DataFrame[data]
confusion_matrix = pd.crosstab[df['y_actual'], df['y_predicted'], rownames=['Actual'], colnames=['Predicted'], margins=True]

sn.heatmap[confusion_matrix, annot=True]
plt.show[]
0

Vẽ ma trận nhầm lẫn cho các nhãn đúng và dự đoán

import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt

data = {'y_actual':    [1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
        'y_predicted': [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0]
        }

df = pd.DataFrame[data]
confusion_matrix = pd.crosstab[df['y_actual'], df['y_predicted'], rownames=['Actual'], colnames=['Predicted'], margins=True]

sn.heatmap[confusion_matrix, annot=True]
plt.show[]
1

Trực quan hóa ma trận nhầm lẫn

Người giới thiệu

[ 1 ]

Mục nhập Wikipedia cho ma trận Nhầm lẫn [Wikipedia và các tài liệu tham khảo khác có thể sử dụng một quy ước khác cho các trục]

Làm thế nào để Python tính toán ma trận nhầm lẫn?

Tạo ma trận nhầm lẫn .
nhập numpy
thực tế = numpy. ngẫu nhiên. nhị thức[1, 0. 9, kích thước = 1000] dự đoán = numpy. ngẫu nhiên. nhị thức[1, 0. 9, kích thước = 1000]
từ số liệu nhập sklearn
cm_display = số liệu. ConfusionMatrixDisplay[confusion_matrix = confusion_matrix, display_labels = [False, True]]
nhập matplotlib. pyplot dưới dạng plt

Python tính toán độ chính xác từ ma trận nhầm lẫn như thế nào?

Để tính toán độ chính xác, hãy sử dụng công thức sau. [TP+TN]/[TP+TN+FP+FN] . Tỷ lệ phân loại sai. Nó cho bạn biết phần dự đoán nào là không chính xác. Nó còn được gọi là Lỗi phân loại. Bạn có thể tính toán nó bằng cách sử dụng [FP+FN]/[TP+TN+FP+FN] hoặc [1-Độ chính xác].

Làm thế nào là ma trận nhầm lẫn tính toán?

Cách tính ma trận nhầm lẫn để phân loại nhị phân .
Xây dựng bảng của bạn. .
Nhập các giá trị dương và âm được dự đoán. .
Nhập các giá trị dương và âm thực tế. .
Xác định tỷ lệ chính xác. .
Tính tỷ lệ phân loại sai. .
Tìm tỷ lệ dương thực sự. .
Xác định tỷ lệ âm thực sự

Scikit học tính toán ma trận nhầm lẫn như thế nào?

Để có được ma trận nhầm lẫn trong scikit-learning. .
Chạy một thuật toán phân loại. phân loại. phù hợp [X_train, y_train].
Nhập số liệu từ mô-đun sklearn. .
Chạy chức năng ma trận nhầm lẫn trên các giá trị thực tế và dự đoán. .
Vẽ ma trận nhầm lẫn. .
Kiểm tra báo cáo phân loại

Chủ Đề