Chalkashlik matritsasi


ULASHISH

Chalkashlik matritsasi nima?

Bu modeldagi xatolar qayerda qilinganligini baholash uchun tasniflash muammolarida foydalaniladigan jadval.

Qatorlar natijalar bo‘lishi kerak bo‘lgan haqiqiy classlarni ifodalaydi. Ustunlar esa biz qilgan bashoratlarni ifodalaydi. Ushbu jadval yordamida qaysi bashoratlar noto‘g‘ri ekanligini aniqlash oson.


Chalkashlik matritsasi yaratish

Chalkashlik matritsalari logistik regressiyadan bashorat qilish orqali yaratilishi mumkin.

Hozircha biz NumPy yordamida haqiqiy va taxmin qilingan qiymatlarni yaratamiz:

import numpy

Keyinchalik biz "haqiqiy" va "bashorat qilingan" qiymatlar uchun raqamlarni yaratishimiz kerak.

actual = numpy.random.binomial(1, 0.9, size = 1000)
predicted = numpy.random.binomial(1, 0.9, size = 1000)

Chalkashlik matritsasini yaratish uchun biz sklearn modulidan o‘lchovlarni import qilishimiz kerak.

from sklearn import metrics

Ko‘rsatkichlar import qilingandan so‘ng, biz chalkashlik matritsasi funksiyasidan haqiqiy va taxmin qilingan qiymatlarimizda foydalanishimiz mumkin.

confusion_matrix = metrics.confusion_matrix(actual, predicted)

Ko‘proq tushunarli vizual displey yaratish uchun jadvalni chalkashlik matritsali displeyga aylantirishimiz kerak.

cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix, display_labels = [0, 1])

Displeyni vizualizatsiya qilish uchun matplotlib dan pyplot import qilishimiz kerak.

import matplotlib.pyplot as plt

Nihoyat, syujetni ko‘rsatish uchun biz pyplotdan plot() va show() funksiyalaridan foydalanishimiz mumkin.

cm_display.plot()
plt.show()

To‘liq misolni amalda ko‘ring:

Misol

import matplotlib.pyplot as plt import numpy from sklearn import metrics actual = numpy.random.binomial(1,.9,size = 1000) predicted = numpy.random.binomial(1,.9,size = 1000) confusion_matrix = metrics.confusion_matrix(actual, predicted) cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix, display_labels = [0, 1]) cm_display.plot() plt.show()

Natija

Misolni ishga tushirish »

Natijalar tushuntirildi

Yaratilgan chalkashlik matritsasi to‘rt xil kvadrantga ega:

Haqiqiy salbiy (yuqori-chap kvadrant) noto‘g‘ri musbat (yuqori-o‘ng kvadrant) noto‘g‘ri salbiy (pastki-chap kvadrant) haqiqiy ijobiy (pastki o‘ng kvadrant)

To‘g‘ri qiymatlar to‘g‘ri bashorat qilinganligini anglatadi, noto‘g‘ri - xato yoki noto‘g‘ri bashorat borligini bildiradi.

Endi biz chalkashlik matritsasini yaratdik, biz model sifatini aniqlash uchun turli xil o‘lchovlarni hisoblashimiz mumkin. Birinchidan, aniqlikni ko‘rib chiqaylik.



Yaratilgan ko‘rsatkichlar

Matritsa bizga tasniflash modelimizni baholashga yordam beradigan ko‘plab foydali ko‘rsatkichlarni taqdim etadi.

Turli xil o‘lchovlarga quyidagilar kiradi: Aniqlik, Aniqlik, Sezuvchanlik (eslab qolish), O‘ziga xoslik va quyida tavsiflangan F ball.


Aniqlik

Aniqlik model qanchalik to‘g‘ri ekanligini o‘lchaydi.

Qanday hisoblash kerak

(Haqiqiy ijobiy + haqiqiy salbiy) / Jami bashoratlar

Misol

Accuracy = metrics.accuracy_score(actual, predicted)
Misolni ishga tushirish »

Aniqlik

Bashorat qilingan ijobiy narsalarning necha foizi haqiqatan ham ijobiy?

Qanday hisoblash kerak

Haqiqiy ijobiy / (haqiqiy ijobiy + noto‘g‘ri ijobiy)

Aniqlik to‘g‘ri bashorat qilingan salbiy holatlarni baholamaydi:

Misol

Precision = metrics.precision_score(actual, predicted)
Misolni ishga tushirish »

Sezuvchanlik (eslab qolish)

Barcha ijobiy holatlarning necha foizi ijobiy prognoz qilingan?

Sezuvchanlik (ba’zan Recall deb ataladi) modelning ijobiy tomonlarini bashorat qilishda qanchalik yaxshi ekanligini o‘lchaydi.

Bu shuni anglatadiki, u haqiqiy ijobiy va noto‘g‘ri salbiylarga qaraydi (bular salbiy deb noto‘g‘ri bashorat qilingan ijobiy).

Qanday hisoblash kerak

Haqiqiy ijobiy / (haqiqiy ijobiy + noto‘g‘ri salbiy)

Model nimanidir ijobiy deb bashorat qilishini tushunishda sezgirlik yaxshi:

Misol

Sensitivity_recall = metrics.recall_score(actual, predicted)
Misolni ishga tushirish »

O‘ziga xoslik

Model salbiy natijalarni bashorat qilishda qanchalik yaxshi?

O‘ziga xoslik sezgirlikka o‘xshaydi, lekin unga salbiy natijalar nuqtai nazaridan qaraydi.

Qanday hisoblash kerak

Haqiqiy salbiy / (haqiqiy salbiy + noto‘g‘ri ijobiy)

Bu Recall ning teskarisi bo‘lgani uchun biz qarama-qarshi pozitsiya belgisini olib, recall_score funksiyasidan foydalanamiz:

Misol

Specificity = metrics.recall_score(actual, predicted, pos_label=0)
Misolni ishga tushirish »

F ball

F-bal aniqlik va sezgirlikning "harmonik o‘rtacha"sidir.

U noto‘g‘ri ijobiy va noto‘g‘ri salbiy holatlarni ko‘rib chiqadi va muvozanatsiz ma’lumotlar to‘plami uchun yaxshi.

Qanday hisoblash kerak

2 * ((Precision * Sensitivity) / (Precision + Sensitivity))

Bu ball Haqiqiy Salbiy qiymatlarni hisobga olmaydi:

Misol

F1_score = metrics.f1_score(actual, predicted)
Misolni ishga tushirish »

Barcha hisob-kitoblar bitta:

Misol

#metrics print({"Accuracy":Accuracy,"Precision":Precision,"Sensitivity_recall":Sensitivity_recall,"Specificity":Specificity,"F1_score":F1_score})
Misolni ishga tushirish »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!