Mashinali o`qitishga kirish



Yüklə 0,97 Mb.
səhifə2/2
tarix22.05.2023
ölçüsü0,97 Mb.
#127412
1   2
Mashinali o`qitishga kirish

import numpy as np


def softmax(x):
return np.exp(x) / np.sum(np.exp(x), axis=0)


Softmax 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:


from sklearn.linear_model import LogisticRegression


# Ma'lumotlar to'plami
X = [[0.5, 1], [0.7, 0.9], [0.2, 0.4], [0.4, 0.6], [0.3, 0.8], [0.1, 0.2], [0.25, 0.9], [0.6, 0.7], [0.8, 0.5], [0.9, 0.3]]
y = [0, 1, 0, 0, 1, 0, 1, 1, 1, 1]


# Sinflashtirish modelini yaratish
clf = LogisticRegression(random_state=0).fit(X, y)


# Yangi qiymatlar uchun sinflashtirishni aniqlash
print(clf.predict([[0.4, 0.5], [0.8, 0.9]]))


# Softmax funksiyasi yordamida sinflashtirishni aniqlash
print(softmax(clf.predict_proba([[0.4, 0.5], [0.8, 0.9]]))))

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. "predict_proba()" yordamida esa yangi qiymatlar uchun sinflashtirishning taxminiy ehtimoliyliklari aniqlanadi. "softmax()" yordamida esa taxminiy ehtimoliyliklar softmax funksiyasi yordamida sinflashtirishga aylantiriladi.


Natijaviy chiqish quyidagicha bo'ladi:


Bu natijalardan ko'rib chiqilishi mumkinki, birinchi qiymat 0 ga, ikkinchi qiymat 1 ga mos keladi. Ikkinchi chiqish esa, birinchi qiymat 0.406 ga, ikkinchi qiymat 0.594 ga mos keladi.

import numpy as np


import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

# Iris ma'lumotlar to'plami yuklanadi


iris = load_iris()

# Faqat 2 ta xususiyatni olish


X = iris.data[:, :2]
y = iris.target

# Softmax aktivlash funksiyasi bilan logistik regressiya modeli yaratiladi


clf = LogisticRegression(multi_class='multinomial', solver='lbfgs', 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).reshape(xx.shape + (3,))

# Grafik chiziladi


f, ax = plt.subplots(figsize=(8, 6))
contour = ax.contourf(xx, yy, probs.max(axis=2), 25, cmap="RdBu", vmin=0, vmax=1)
ax_c = f.colorbar(contour)
ax_c.set_label("Maksimal ehtimollik")
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="Softmax aktivlash funksiyasi bilan logistik regressiya", xlabel="X1", ylabel="X2")


ax.legend()
plt.show()

Yüklə 0,97 Mb.

Dostları ilə paylaş:
1   2




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin