Guruhi talabasining



Yüklə 67,47 Kb.
Pdf görüntüsü
tarix16.12.2023
ölçüsü67,47 Kb.
#182812
mashinalided



O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR 
VAZIRLIGI MUHAMMAD AL-XORAZIMIY NOMIDAGI 
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
KIBERXAVFSIZLIK FAKULTETI “ 711-21AXO`” GURUHI 
TALABASINING “MASHINALI OQITISHGA 
KIRISH‘’FANIDAN 
 


AMALIY ISHI 
BAJARDI:ZOKIRJANOV D 
TEKSHIRDI
:
QOBILOV S
 

Toshkent -2023 


REJA 
1.
Chiziqli regressiya tushunchasi. 
2.
Ikkinchi darajali polynomial regressiya tushunchasi. 
3.
y=wx+b va y=w1x2+w2x+b funksiyalardagi og`irliklar va bias qiymatlarini 
topish.
4.
Gradient pastlash va Loss grafigi. 
 
 


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. 
Chiziqli regressiya tushunchasi 
Chiziqli regressiya tushunchasi. y=wxfunksiyadagi Gradient (og`irlik) qiymatini topish. 
Gradient pastlash grafigi va Loss grafigini xosil qilish. 
y = -x 
import math 
import matplotlib.pyplot as plt 
x = [1, 2, 3] 
y = [-1, -2, -3] 
w = [0] 
a = 0.05 
loss = [50] 
for i in range(1, 20) : 
loss.append(0) 
t=0 
for j in range(len(x)):
loss[i] += math.pow(w[i-1]*x[j]-y[j], 2)
t+= (w[i-1]*x[j]-y[j])*x[j] 
loss[i]/=len(x) 
if loss[i] 
w.append(w[i-1]-a*(2/len(x))*t) 


print(loss[i]) 
print("w = ", w[-1]) 
plt.plot(loss) 
plt.show 
Ikkinchi darajali polynomial regressiya tushunchasi. y=w1x2+w2xnoma’lum 
koeffitsientlarni toppish. Loss grafigini chiqarish. 
y = 3x2-3x 
import math 
import matplotlib.pyplot as plt 
x = [1, 2, 3] 
y = [0, 6, 18] 
w1 = [4] 
w2 = [-2] 
a = 0.001 
loss = [70] 
for i in range(1, 200) : 
loss.append(0) 
t=0 
for j in range(len(x)):
loss[i] += math.pow(w1[i-1]*math.pow(x[j],2)+w2[i-1]*x[j]-y[j], 2)
t+= (w1[i-1]*math.pow(x[j],2)+w2[i-1]*x[j]-y[j])*x[j] 
loss[i]/=len(x) 
if loss[i] 


w1.append(w1[i-1]-a*(2/len(x))*t) 
w2.append(w2[i-1]-a*(2/len(x))*t) 
print("w1 = ", w1[-1])
print("w2 = ", w2[-1])
print("y = %dx^2 + %fx" % (round(w1[-1]), round(w2[-1])))
print("loss = ", loss) 
plt.plot(loss) 
plt.show() 
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.ar-
ray([
3
,
5
,
7
,
4
,
8
,
9
,
12
,
15
,
17
,
18
,
20
]) 
y = np.ar-
ray([
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.col-
umn_stack((x, y, ym, 
abs
(y-ym)))) 
# Plotting the regression line
plt.plot(x, ym, 
'r'

# Displaying the plot
plt.show() 


 


. Chiziqli regressiya tushunchasi. y=wx funksiyadagi Gradient (og`irlik) qiymatini 
topish. Gradient pastlash grafigi va Loss grafigini xosil qilish.
import numpy as np
import matplotlib.pyplot as plt 
import math
x = [1,2,3] 
y = [2,4,6] 
r = np.zeros(5) 
for w in range(0,5): 
loss = 0 
for j in range(0,3): 
loss =loss + (w*x[j]-y[j])*(w*x[j]-y[j]) 
r[w]= loss/3 
print(f'r[{w}]=',r[w]) 
2. Ikkinchi darajali polynomial regressiya tushunchasi. y=w1x 2+w2x noma’lum 
koeffitsientlarni toppish. Loss grafigini chiqarish. 


import numpy as np
import matplotlib.pyplot as plt 
import math
n = int (input('signal soni = ')) 
m = int(input('testlaw qiymati = ')) 
x = [1,2,3] 
y = [2,4,6] 
w = np.zeros(n) 
r = np.zeros(n) 
w[0]=4 
a = 0.01 
for i in range(1,n): 
for j in range(0,3): 
w[i]=w[i-1]-a*2*(w[i-1]*x[j]-y[j])*x[j] 
r[i-1]=(w[i-1]*x[j]-y[j])**2 
if 0.001z= w[i-1]*m 
print(z) 
plt.plot(r) 
plt.show() 


2.
Sigmoid aktivlash funksiyasi yordamida sinflashtirish 
Sigmoid aktivatsiya funksiyasi, neyron tarmoqlarida ishlatiladigan bir ak-
tivatsiya funksiyasidir. Bu funksiya, 0 va 1 oralig'ida qiymatlar qaytaradi va ney-
ron 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" kutubx-
onasi 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 yarati-
ladi 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() 
 


Ikkinchi darajali polynomial regressiya, o'z nomidan ma'lum bo'lgan bir regressiya turi. 
Bu, bitta o'zgaruvchili ma'lumotlar (independent variable) bo'yicha ma'lumotlarni 
boshqa o'zgaruvchili ma'lumotlar (dependent variable) ga moslash uchun ishlatiladi. Bu 
regressiya turi ikkinchi daraja (kvadratik) funksiyalarni o'rganishda juda foydalaniladi. 
Ikkinchi darajali polynomial regressiyada umumiy formulani quyidagicha ifodalash 
mumkin: 
\[y = \beta_0 + \beta_1x + \beta_2x^2 + \varepsilon\] 
Bu formulada: 
- \(y\) - o'zgaruvchili ma'lumot (dependent variable), 
- \(x\) - boshqa o'zgaruvchili ma'lumot (independent variable), 
- \(\beta_0\), \(\beta_1\), va \(\beta_2\) - regressiya ko'efitsientlari, 
- \(x^2\) - \(x\) ning kvadrati, 
- \(\varepsilon\) - o'zgaruvchilik (residual) termi (yani, modelning real ma'lumotlardan 
qancha qat'iy farq qilayotganini ifodalovchi term). 
Ikkinchi darajali polynomial regressiya esa, o'zgaruvchili ma'lumotlar va ularning 
kvadratlarini o'z ichiga oladi. Bu, ma'lumotlar o'rtasidagi ikki-bosqichli munosabatni 
boshqa qismlarda hosil qilish uchun foydalaniladi. Kvadratning qo'shish orqali, 
regressiya modelining o'zgaruvchili ma'lumotlarga qanday o'zgarishlarga olib kelishi 
haqida ko'proq ma'lumot olish mumkin. 
Ikkinchi darajali polynomial regressiya tushunchasini tushuntirishda, ko'rsatkichlar, 
grafiklar yoki statistik ma'lumotlar yordamida regressiya modelining ma'lumotlarni 
qanday yaxshi ifodalayotganini tahlil qilish kerak bo'ladi

Siz "y = wx + b" va "y = w1x2 + w2x + b" funksiyalardagi og'irliklar (weights) va bias 
qiymatlarni topishni so'ragan bo'lasiz. Bu funksiyalarda \(w\) lar og'irliklarni, \(b\) lar 
bias qiymatlarini ifodalaydi. 


Birinchi formulada: 
\[y = wx + b\] 
- \(w\) - og'irlik (weight), 
- \(b\) - bias. 
Ikkinchi formulada: 
\[y = w1x2 + w2x + b\] 
- \(w1\) va \(w2\) - ikki ta og'irlik (weights), 
- \(b\) - bias. 
Bu qiymatlarni topish uchun, sizning ma'lumotlar to'plamingizdagi mos keluvchi "y" va 
"x" qiymatlari bo'lishi kerak. Agar sizda amaliy ma'lumotlar mavjud bo'lsa (masalan, 
"x" ma'lumotlari va mos keluvchi "y" ma'lumotlari), uning bilan regressiya algoritmini 
ishlatib, og'irliklar va bias qiymatlarni o'rganishingiz mumkin. 
Og'irliklar va bias qiymatlari, regressiya algoritmi orqali, masofaviy ta'sir (distance 
error)ni kamaytirib, yani, "y" ma'lumotlari va regressiya modeli orasidagi farqni 
minimallashtirishga harakat qilgan holda topiladi. Bu metodlar "Gradient Descent" yoki 
"Normal Equation" kabi usullar orqali amalga oshiriladi. Har qanday algoritm 
ishlashida, og'irliklar va bias qiymatlari ma'lumotlarning tezroq konvergensiya 
ko'rsatkichiga yettiriladi. 
Bu algoritmalar tushunchalari matematik usullar, statistika va ma'lumotlar analizi bilan 
bog'liqdir va ularni amalga oshirish uchun matematik dasturlar yordamida ishlab 
chiqilgan dasturlar va bibliotekalardan foydalanish tavsiya etiladi. 


 

Yüklə 67,47 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin