Rumah > pembangunan bahagian belakang > Tutorial Python > Trik Matriks Kekeliruan dalam Python

Trik Matriks Kekeliruan dalam Python

WBOY
Lepaskan: 2023-06-11 10:43:54
asal
2562 orang telah melayarinya

Dengan populariti pembelajaran mesin dan perlombongan data, semakin ramai saintis dan penyelidik data mula menggunakan Python, bahasa pengaturcaraan peringkat tinggi, untuk memproses dan menganalisis data, dan intuitif dan kemudahan penggunaan Python menjadikannya in- kedalaman Ia digunakan secara meluas dalam bidang pembelajaran dan kecerdasan buatan. Walau bagaimanapun, ramai pemula menghadapi beberapa kesukaran apabila menggunakan Python, salah satunya ialah kesukaran matriks kekeliruan. Dalam artikel ini, kami akan memperkenalkan penggunaan matriks kekeliruan dalam Python dan beberapa teknik berguna apabila menangani matriks kekeliruan.

1. Apakah itu matriks kekeliruan

Dalam pembelajaran mendalam dan perlombongan data, matriks kekeliruan ialah jadual segi empat tepat yang digunakan untuk membandingkan perbezaan antara keputusan yang diramalkan dan keputusan sebenar. Matriks ini menunjukkan prestasi algoritma pengelasan, termasuk penunjuk penting seperti ketepatan, kadar ralat, ketepatan dan ingat semula algoritma pengelasan. Matriks kekeliruan biasanya menggambarkan prestasi pengelas dan menyediakan rujukan utama untuk hasil ramalan untuk penambahbaikan dan pengoptimuman pengelas.

Biasanya, matriks kekeliruan terdiri daripada empat parameter:

  • Positif Benar (TP): Algoritma pengelasan dengan betul meramalkan kelas positif sebagai kelas positif.
  • Negatif Palsu (FN): Algoritma pengelasan salah meramalkan kelas positif sebagai kelas negatif.
  • Positif Palsu (FP): Algoritma pengelasan salah meramalkan kelas negatif sebagai kelas positif.
  • True Negative (TN): Algoritma pengelasan dengan betul meramalkan kelas negatif sebagai kelas negatif.

2. Cara mengira matriks kekeliruan

Pustaka scikit-lear dalam Python menyediakan fungsi yang mudah untuk mengira matriks kekeliruan. Fungsi ini dipanggil confusion_matrix() dan boleh digunakan sebagai input antara pengelas dan keputusan sebenar set ujian, dan mengembalikan nilai parameter matriks kekeliruan. Sintaks fungsi ini adalah seperti berikut:

from sklearn.metrics import confusion_matrix
confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
Salin selepas log masuk

Antaranya, y_true mewakili hasil pengelas yang betul, y_pred mewakili hasil ramalan pengelas, dan label mewakili nama label kelas (jika tidak disediakan , ia lalai kepada nilai yang diekstrak y_true dan y_pred), sample_weight mewakili berat setiap sampel (jika tidak diperlukan, jangan tetapkan parameter ini).

Sebagai contoh, katakan kita perlu mengira matriks kekeliruan data berikut:

y_true = [1, 0, 1, 2, 0, 1]
y_pred = [1, 0, 2, 1, 0, 2]
Salin selepas log masuk

Untuk mengira matriks kekeliruan, anda boleh menggunakan kod berikut:

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_true, y_pred)
print(cm)
Salin selepas log masuk

The hasil output ialah:

array([[2, 0, 0],
       [0, 1, 2],
       [0, 1, 0]])
Salin selepas log masuk

Iaitu, matriks kekeliruan menunjukkan bahawa "1" dikelaskan dengan betul sebagai "1" dua kali, "0" dikelaskan dengan betul sebagai "0" sekali dan "2" dikelaskan dengan betul sebagai "2" "Terdapat 0 kes "1" disalahklasifikasikan sebagai "2", terdapat 2 kes "2" disalahklasifikasikan sebagai "1", dan "0" disalahklasifikasikan sebagai "2" Situasi itu berlaku sekali.

3. Paparkan matriks kekeliruan

Terdapat banyak situasi di mana kita memerlukan visualisasi matriks kekeliruan yang lebih baik. Pustaka matplotlib dalam Python boleh menggambarkan matriks kekeliruan. Berikut ialah kod Python yang menggunakan perpustakaan matplotlib dan sklearn.metrics untuk menggambarkan matriks kekeliruan.

import itertools
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix

def plot_confusion_matrix(cm, classes,
                          normalize=False,
                          title='Confusion matrix',
                          cmap=plt.cm.Blues):
    """
    This function prints and plots the confusion matrix.
    Normalization can be applied by setting `normalize=True`.
    """
    if normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')

    print(cm)

    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=45)
    plt.yticks(tick_marks, classes)

    fmt = '.2f' if normalize else 'd'
    thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, format(cm[i, j], fmt),
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")

    plt.tight_layout()
    plt.ylabel('True label')
    plt.xlabel('Predicted label')

# Compute confusion matrix
cnf_matrix = confusion_matrix(y_test, y_pred)
np.set_printoptions(precision=2)

# Plot non-normalized confusion matrix
plt.figure()
plot_confusion_matrix(cnf_matrix, classes=class_names,
                      title='Confusion matrix, without normalization')

# Plot normalized confusion matrix
plt.figure()
plot_confusion_matrix(cnf_matrix, classes=class_names, normalize=True,
                      title='Normalized confusion matrix')

plt.show()
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan fungsi tersuai bernama plot_confusion_matrix(), yang menerima parameter matriks kekeliruan sebagai parameter, rentetan teks nama kategori dan mengeluarkan matriks kekeliruan sebagai imej warna . Warna setiap sel matriks kekeliruan mewakili saiz nilainya. Seterusnya, kita perlu mengira matriks kekeliruan menggunakan kategori benar dan ramalan masing-masing dan mewakili matriks kekeliruan menggunakan fungsi plot_confusion_matrix() yang ditakrifkan di atas.

4. Ringkasan

Bahasa Python menyediakan sejumlah besar perpustakaan visualisasi dan analisis data, yang membolehkan saintis data dan penyelidik menjalankan analisis data pembelajaran mendalam dan kecerdasan buatan dengan lebih cepat. Dalam artikel ini, kami memperkenalkan matriks kekeliruan dan aplikasinya, serta cara mengira matriks kekeliruan dalam Python dan cara menggunakan perpustakaan matplotlib untuk menjana grafik matriks kekeliruan. Teknologi matriks kekeliruan mempunyai aplikasi penting dalam bidang pembelajaran mendalam dan kecerdasan buatan Oleh itu, adalah sangat perlu untuk mempelajari teknologi matriks kekeliruan.

Atas ialah kandungan terperinci Trik Matriks Kekeliruan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan