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)