|
Modelimizning aniqligini baholash
|
bet | 4/4 | Sana | 04.10.2023 | Hajmi | 106.64 Kb. | | #86396 |
Bog'liq laboratoriya mashg\'uloti 3 Ichki ishlar boshqarmasiga, Документ Microsoft Word (2) (Автосохраненный), kompyuter chiqarish, Topshiriq 2, 2 hafta laboratoriya, Дастурлаш 4.1 машгулот (2), 9, 2, SQL 1-lab Umarov Amirjon, Topshiriq 2.05(Texnikum), 1.1, 7.1 машгулот, MB 2-amaliy ish, 5-amaliy, 1-lab Sirqilarga AbstraktMT3.Modelimizning aniqligini baholash
Logistik regressiya boʻyicha qoʻllanmada biz scikit-learn oʻrnatilgan funksiyalar bilan taʼminlanganligini koʻrdik, bu esa mashinani oʻrganish tasnifi modellarining unumdorligini oʻlchashni osonlashtiradi.
classification_report va confusion_matrix funksiyalarini import qilaylik :
sklearn.metrics import classification_report dan
sklearn.metrics dan confusion_matrix importi
classification_report dan boshlab ularning har biri bilan navbatma-navbat ishlaylik . Uning yordamida siz shunday hisobot yaratishingiz mumkin:
chop etish ( klassifikatsiya_hisoboti (y_test_ma'lumotlari, bashoratlar))
Qabul qildi chiqish :
aniq eslab qolish f 1 ball qo'llab-quvvatlash
0 0,92 0,91 0,91 148
1 0,91 0,92 0,92 152
aniqlik 0,91 300
so'l o'rtacha 0,91 0,91 0,91 300
vaznli o'rtacha 0,91 0,91 0,91 300
Xuddi shunday, siz xato matritsasini yaratishingiz mumkin:
chop etish ( confusion_matrix ( y_test_data , bashoratlar))
# Xulosa:
# [[ 134 14 ]
# [12 140]]
Bunday ishlash ko'rsatkichlariga qaraganda, bizning modelimiz allaqachon samarali bo'lganga o'xshaydi. Ammo uni hali ham yaxshilash mumkin.
Keyingi bo'lim K uchun mosroq qiymatni tanlash orqali K-eng yaqin qo'shnilar modelining ishlashiga qanday ta'sir qilishimiz mumkinligini ko'rsatadi.
Tirsak usuli yordamida K uchun optimal qiymatni tanlash
Ushbu bo'limda biz K ning eng yaqin qo'shni algoritmi uchun K ning optimal qiymatini tanlash uchun tirsak usulidan foydalanamiz.
Tirsak usuli K ning turli qiymatlarini takrorlashni va sinov ma'lumotlarimizga qo'llanganda xatolik darajasi eng past bo'lgan qiymatni tanlashni o'z ichiga oladi.
error_rates ro'yxatini yarataylik . Biz turli xil K qiymatlarini ko'rib chiqamiz va ularning xatolik darajasini ushbu ro'yxatga qo'shamiz.
xato_stavkalari = []
Python tsiklini yaratishimiz kerak va har bir iteratsiyada quyidagilarni amalga oshiradi:
scikit-learn dan KNeighborsClassifier sinfining yangi namunasini yaratadi .
Bizning ta'lim ma'lumotlarimizdan foydalanib, ushbu modelni o'rgatadi.
Sinov ma'lumotlarimiz asosida bashorat qiladi.
Noto'g'ri prognozlar nisbatini hisoblaydi (u qanchalik past bo'lsa, bizning modelimiz shunchalik aniqroq).
1 dan 100 gacha bo'lgan K qiymatlari uchun tavsiflangan tsiklni amalga oshirish:
i uchun np.arange ( 1, 101):
new_model = KNeighborsClassifier ( n_neighbors = i )
new_model.fit ( x_training_data , y_training_data )
new_predictions = new_model.predict ( x_test_data ) _
error_rates.append ( np.mean ( new_predictions != y_test_data ) )
Keling, matplotlib - plt.plot ( error_rates ) yordamida turli K uchun xato darajasi qanday o'zgarishini tasavvur qilaylik:
Grafikdan ko'rinib turibdiki, biz K qiymati taxminan 35 bo'lgan minimal xatolik darajasiga erishamiz. Bu 35 oddiylik va bashorat qilish aniqligini birlashtirgan K uchun mos tanlov ekanligini anglatadi.
GitLab da barcha kodlarni topishingiz mumkin :
https://gitlab.com/PythonRu/notebooks/-/blob/master/sklearn_kmeans_and_knn.ipynb
4.Individual vazifa: ko'rsatilgan barcha kodlarni to'plang, ma'lumotlar to'plamini yuklab oling va chiqish ma'lumotlarini tahlil qiling.
|
| |