Trong hướng dẫn ngắn này, bạn sẽ thấy một ví dụ đầy đủ về một ma trận nhầm lẫn trong Python.
Các chủ đề cần được xem xét:
- Tạo ma trận nhầm lẫn bằng cách sử dụng gấu trúc
- Hiển thị ma trận nhầm lẫn bằng cách sử dụng Seaborn
- Nhận chỉ số bổ sung thông qua & nbsp; pandas_ml
- Làm việc với dữ liệu không phải là số
Tạo ma trận nhầm lẫn trong Python bằng cách sử dụng gấu trúc
Để bắt đầu, đây là bộ dữ liệu được sử dụng cho ma trận nhầm lẫn trong Python:
y_actual | y_predicted |
1 | 1 |
0 | 1 |
0 | 0 |
1 | 1 |
0 | 0 |
1 | 1 |
0 | 1 |
0 | 0 |
1 | 1 |
0 | 0 |
1 | 0 |
0 | 0 |
Sau đó, bạn có thể ghi dữ liệu này bằng Python bằng cách tạo gấu trúc DataFrame bằng mã này:
import pandas as pd 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] print[df]
Đây là cách dữ liệu sẽ trông như thế nào khi bạn chạy mã:
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
Để tạo ma trận nhầm lẫn bằng gấu trúc, bạn sẽ cần phải áp dụng & nbsp; pd.crosstab như sau:
confusion_matrix = pd.crosstab[df['y_actual'], df['y_predicted'], rownames=['Actual'], colnames=['Predicted']] print [confusion_matrix]
Và đây là mã Python đầy đủ để tạo ma trận nhầm lẫn:
import pandas as pd 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']] print[confusion_matrix]
Chạy mã và bạn sẽ nhận được ma trận sau:
Predicted 0 1
Actual
0 5 2
1 1 4
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn seaborn
Ma trận bạn vừa tạo trong phần trước là khá cơ bản.
Bạn có thể sử dụng gói Seaborn trong Python để có một màn hình hiển thị sống động hơn của ma trận. Để thực hiện nhiệm vụ này, bạn sẽ cần thêm hai thành phần sau vào mã:
- nhập seeborn dưới dạng sn
- Sn.HeatMap [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 như PLT
- plt.show[]
Đặ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[]
Tùy chọn, & nbsp; 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 lề = 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 chỉ số bổ sung bằng cách sử dụng & nbsp; pandas_ml
Bạn có thể in các số liệu thống kê bổ sung [chẳng hạn như & nbsp; độ 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 cần thêm cú pháp sau vào mã:
confusion_matrix = ConfusionMatrix[df['y_actual'], df['y_predicted']] confusion_matrix.print_stats[]
Dưới đây là mã hoàn chỉnh mà bạn có thể sử dụng để có được các 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 đang gặp lỗi khi chạy mã, bạn có thể xem xét thay đổi phiên bản của gấu trúc. Ví dụ: bạn có thể thay đổi phiên bản của gấu trúc thành 0,23.4 Sử dụng lệnh này: PIP Cài đặt pandas == 0,23,4]:note that if you’re getting an error when running the code, you may consider changing the version of pandas. For example, you may change the version of pandas to 0.23.4 using this command: pip install 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
0Ví dụ của chúng tôi:
- TP = tích cực đúng = 4 = True Positives = 4
- TN = Đúng là phủ định = 5 = True Negatives = 5
- Fp = dương tính giả = 2 = False Positives = 2
- Fn = âm âm giả = 1 = False Negatives = 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:
Đố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 = [4+5]/12 = 0.75
Làm việc với dữ liệu không phải là số
Tạo ma trận nhầm lẫn trong Python bằng cách sử dụng gấu trúc
Để bắt đầu, đây là bộ dữ liệu được sử dụng cho ma trận nhầm lẫn trong Python:
Sau đó, bạn có thể ghi dữ liệu này bằng Python bằng cách tạo gấu trúc DataFrame bằng mã này:
- Đây là cách dữ liệu sẽ trông như thế nào khi bạn chạy mã:
- Để tạo ma trận nhầm lẫn bằng gấu trúc, bạn sẽ cần phải áp dụng & nbsp; pd.crosstab như sau:
Và đây là mã Python đầy đủ để tạo ma trận nhầm lẫn:
y_actual | y_predicted |
Chạy mã và bạn sẽ nhận được ma trận sau: | Chạy mã và bạn sẽ nhận được ma trận sau: |
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn | Chạy mã và bạn sẽ nhận được ma trận sau: |
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn | Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn |
Chạy mã và bạn sẽ nhận được ma trận sau: | Chạy mã và bạn sẽ nhận được ma trận sau: |
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn | Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn |
Chạy mã và bạn sẽ nhận được ma trận sau: | Chạy mã và bạn sẽ nhận được ma trận sau: |
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn | Chạy mã và bạn sẽ nhận được ma trận sau: |
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn | Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn |
Chạy mã và bạn sẽ nhận được ma trận sau: | Chạy mã và bạn sẽ nhận được ma trận sau: |
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn | Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn |
Chạy mã và bạn sẽ nhận được ma trận sau: | Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn |
Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn | Hiển thị ma trận nhầm lẫn bằng cách sử dụng & nbsp; Seaborn |
Ma trận bạn vừa tạo trong phần trước là khá cơ bản.
Bạn có thể sử dụng gói Seaborn trong Python để có một màn hình hiển thị sống động hơn của ma trận. Để thực hiện nhiệm vụ này, bạn sẽ cần thêm hai thành phần sau vào mã:
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
1nhập seeborn dưới dạng sn
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
2Sn.HeatMap [Confusion_Matrix, Annot = true]
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