• Modelni yaratish
  • Gradient pastlash va ogirliklarni yangilash
  • Natijalarni tahlil qilish
  • Chiziqli regressiya tushunchasi. Ikkinchi darajali polynomial regressiya tushunchasi




    Download 0,56 Mb.
    bet4/4
    Sana20.05.2024
    Hajmi0,56 Mb.
    #246584
    1   2   3   4
    Bog'liq
    mashinaliq oqitish

    Ma'lumotlar to'plash: Ma'lumotlar to'plangan ma'lumotlar to'plamini (X) va ularga mos keladigan sinflarni (y) olish.

  • Ma'lumotlarni tayyorlash: Ma'lumotlar to'plamini ixtiyoriy tartibda bölüp, bir qismi o'qitish uchun, ikkinchisi validatsiya uchun qo'llaniladi.

  • Modelni yaratish: Logistik regressiya modelini yaratamiz. Uning formulasi sigmoid funksiyasi y(x) = 1 / (1 + exp(-z)), z = wx + b, yuqorida w - og'irliklar, b - bias deb ifodalangan.

  • Loss funksiyasini tanlash: Loss funksiyasini (o'zgaruvchaning o'zgarishiga qarab qanday o'zgarishi bilan o'qitish qobiliyatini baholaydigan funksiya) tanlash. Logistik regressiyada qo'llaniladigan log loss funksiyasi L = - (1/m) * Σ(y * log(y_pred) + (1 - y) * log(1 - y_pred)), m - ma'lumotlar soni, y_pred - model tomonidan baho berilgan sinfning bashorati, y - faktik sinf.

  • Gradient pastlash va og'irliklarni yangilash: Gradient pastlash orqali og'irliklarni va biasni yangilash. Gradientni hisoblash uchun esa yuqoridagi log loss funksiyasining w va b bo'yicha qismi gradientini hisoblash kerak.

  • Modelni o'qitish: O'zgaruvchanlarni yangilash orqali modelni o'qitish.

  • Natijalarni baholash: Validatsiya to'plamiga modelni test qilish va natijalarni baholash.

  • Natijalarni tahlil qilish: Modelning natijalarini tahlil qilish va qanday yaxshi yoki yomon ishlashini aniqlash.


    Dastur kodi

    # Kerakli kutubxonalar import qilinadi
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import train_test_split
    from sklearn.datasets import make_classification

    # Ma'lumotlarni generatsiya qilamiz


    X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42)

    # Ma'lumotlarni taqsimlash


    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    # Logistik regressiya modelini yaratish va o'qitish


    model = LogisticRegression()
    model.fit(X_train, y_train)

    # Uyg'unlikni baholash


    accuracy = model.score(X_test, y_test)
    print(f"Uyg'unlik: {accuracy}")

    # Natijalarni vizualizatsiya qilish


    plt.figure(figsize=(10, 6))
    plt.scatter(X[:, 0], X[:, 1], c=y, cmap='winter')
    plt.xlabel('X1')
    plt.ylabel('X2')

    # Qarshilik funksiyasini o'rganish


    x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
    y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
    xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.01), np.arange(y_min, y_max, 0.01))
    Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)

    # Qarshilik funksiyasini vaqli bo'lgan sirtlarini chizish


    plt.contourf(xx, yy, Z, alpha=0.3, cmap='winter')
    plt.show()
    Natijamiz:


    Download 0,56 Mb.
  • 1   2   3   4




    Download 0,56 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Chiziqli regressiya tushunchasi. Ikkinchi darajali polynomial regressiya tushunchasi

    Download 0,56 Mb.