Mashinali o`qitishga kirish


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

Download 86.23 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling