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:
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)
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]
Untuk mengira matriks kekeliruan, anda boleh menggunakan kod berikut:
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_true, y_pred) print(cm)
The hasil output ialah:
array([[2, 0, 0], [0, 1, 2], [0, 1, 0]])
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()
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!