Mashinali o`qitishga kirish


Download 86.23 Kb.
bet1/2
Sana31.01.2024
Hajmi86.23 Kb.
#1832741
  1   2
Bog'liq
Mashinali 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