Mashinali o`qitishga kirish
Download 86.23 Kb.
|
Mashinali o`qitishga kirish
- Bu sahifa navigatsiya:
- Sinflashtirish modelini yaratish clf = LogisticRegression(random_state=0).fit(X, y) Yangi qiymatlar uchun sinflashtirishni aniqlash
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: |
ma'muriyatiga murojaat qiling