Mashinali o`qitishga kirish
Download 86.23 Kb.
|
1 2
Bog'liqMashinali o`qitishga kirish
Muhammad Al-Xorazmiy Nomidagi Toshkent Axborot Texnologiyalari Universteti Kompyuter Injiniringi fakulteti “Mashinali o`qitishga kirish” Mustaqil ish Guruh:213-20 guruh Bajardi:Mamajonov Fayzullo 2023 1. Chiziqli regressiya yordamida baholash jarayonini bashoratlash y=wx 2. Sigmoid aktivlash funksiyasi yordamida sinflashtirish 3. Matritsani matritsaga ko’paytirish dasturi 4. Softmax aktivlash funksiyasi yordamida sinflashtirish 1. Regressiya bu – ma’lumotlarni intellektual tahlil qilish usullaridan biri bo’lib, obyekt yoki jarayonga tegishli o'zgaruvchilar o'rtasidagi o'zaro bog'liqlikni baholash uchun statistik jarayonlar to'plami hisoblanadi. Regression tahlil chiziqli yoki nochiziqli, o’z navbatida logistik regressiya usullari asosida amalga oshiriladi. Regression tahlil asosan bashorat qilish va prognoz qilish uchun keng qo'llaniladi va hozirda ushbu usulning ishlatilishi mashinali o’qitish sohasi bilan mos keladi. Regressiya asosida yaratiladigan model ma'lumotlarni berilgan nuqtalardan o'tgan eng yaxshi giper tekislikka (nuqtalar o’rtasidan o’tishiga) moslashtirishga harakat qiladi. Regression tahlilda turli xil modellardan foydalanish mumkin, eng sodda model chiziqli regressiya asosida quriladi.
import matplotlib.pyplot as plt import numpy as np x = np.array([3,5,7,4,8,9,12,15,17,18,20]) y = np.array([12,15,17,10,8,19,24,32,28,37,30]) # Scatter plot of the given data plt.scatter(x, y) # Linear regression model p = np.polyfit(x, y, 1) # Model predictions ym = np.polyval(p, x) # Model evaluation print(np.column_stack((x, y, ym, abs(y-ym)))) # Plotting the regression line plt.plot(x, ym, 'r') # Displaying the plot plt.show() 2. Sigmoid aktivlash funksiyasi yordamida sinflashtirish Sigmoid aktivatsiya funksiyasi, neyron tarmoqlarida ishlatiladigan bir aktivatsiya funksiyasidir. Bu funksiya, 0 va 1 oralig'ida qiymatlar qaytaradi va neyron tarmoqining chiquvchi qiymatini aniqlashda foydalaniladi. Sigmoid funksiyasi quyidagicha ifodalash mumkin: Python-da sigmoid funksiyasini quyidagicha yozish mumkin: Sigmoid funksiyasini sinflashtirish uchun, bir nechta o'zgaruvchilarni o'z ichiga olgan ma'lumotlar to'plamini ishlatish mumkin. Misol uchun, quyidagi kodda, "X" va "y" o'zgaruvchilari uchun ma'lumotlar to'plami yaratilgan va "LogisticRegression" kutubxonasi yordamida sinflashtirish amalga oshirilgan: Bu kod, "X" va "y" o'zgaruvchilari uchun ma'lumotlar to'plamini yaratadi. "LogisticRegression" kutubxonasi yordamida sinflashtirish modeli yaratiladi va "fit()" yordamida ma'lumotlar to'plamiga mos keladi. "predict()" yordamida esa yangi qiymatlar uchun sinflashtirish aniqlanadi. Logistik regressiya, ikki sinflangan ma'lumotlar uchun ishlatiladigan bir regressiya turi hisoblanadi. Bu regressiya turi, sigmoid aktivatsiya funksiyasidan foydalaniladi. Sigmoid funksiyasi, qiymatlarni 0 va 1 orasida cheklovli qiladi va regressiya natijalari sinflarga bo'linadi. Quyidagi kodda, sklearn kutubxonasi yordamida logistik regressiya modeli yaratiladi va iris ma'lumotlar to'plami uchun sinflandirish amaliyoti bajariladi. Natijalar, matplotlib kutubxonasida chizilgan grafikda ko'rsatiladi: from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression import matplotlib.pyplot as plt import numpy as np # Iris ma'lumotlar to'plami yuklanadi iris = load_iris() # Faqat 2 ta xususiyatni olish X = iris.data[:, :2] y = iris.target # Logistik regressiya modeli yaratiladi clf = LogisticRegression(random_state=0).fit(X, y) # Natijalar hisoblanadi xx, yy = np.mgrid[4:8:.01, 2:4.5:.01] grid = np.c_[xx.ravel(), yy.ravel()] probs = clf.predict_proba(grid)[:, 1].reshape(xx.shape) # Grafik chiziladi f, ax = plt.subplots(figsize=(8, 6)) contour = ax.contourf(xx, yy, probs, 25, cmap="RdBu", vmin=0, vmax=1) ax_c = f.colorbar(contour) ax_c.set_label("$P(y = 1)$") ax_c.set_ticks([0, .25, .5, .75, 1]) # Ma'lumotlar to'plami chiziladi for i, color in zip([0, 1, 2], ['blue', 'red', 'green']): idx = np.where(y == i) ax.scatter(X[idx, 0], X[idx, 1], c=color, label=iris.target_names[i], cmap="RdBu", edgecolor="white", s=200) ax.set(title="Logistik regressiya", xlabel="X1", ylabel="X2") ax.legend() plt.show() 3. Matritsani matritsaga ko’paytirish dasturi Matritsani matritsaga ko'paytirish, matematikada juda keng qo'llaniladigan amaldir. Bu amal, matritsalarning ko'paytirilishi, matritsalarning ko'paytirilishi va boshqa ko'paytirish operatsiyalari uchun kerak bo'ladi. Matritsani matritsaga ko'paytirish uchun, matritsalarning ko'paytirilishi uchun quyidagi formulani ishlatish mumkin: C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + ... + A[i][k]*B[k][j] Bu formulada, "A" va "B" matritsalari ko'paytiriladi va "C" natijaviy matritsa hosil qilinadi. "A" matritsasi n satr va m ustundan, "B" matritsasi m ustun va k satrdan iborat bo'lsa, "C" matritsasi n satr va k ustundan iborat bo'ladi. import numpy as np # Matris o'lchamlarini belgilash n = int(input('n=')) m = int(input('m=')) # Random elementlar bilan to'ldirilgan matrislar yaratish A = np.random.rand(n, m) B = np.random.rand(m, n) # Matrislarni ko'paytirish C = np.dot(A, B) # Natijani konsolga chiqarish print("Matris A:") print(A) print("\nMatris B:") print(B) print("\nMatris A x B:") print(C) 4. Softmax aktivlash funksiyasi yordamida sinflashtirish Softmax aktivatsiya funksiyasi, neyron tarmoqlarida ishlatiladigan bir aktivatsiya funksiyasidir. Bu funksiya, neyron tarmoqining chiquvchi qiymatlarini 0 va 1 oralig'ida qiymatlar qaytaradi va sinflashtirish uchun foydalaniladi. Softmax funksiyasi quyidagicha ifodalash mumkin: Python-da softmax funksiyasini quyidagicha yozish mumkin: Download 86.23 Kb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling