Začněte nyníZačněte zdarma

Implementace logistické regrese

Toto cvičení je velmi podobné předchozímu, kde jsi implementoval/a lineární regresi „od nuly" pomocí scipy.optimize.minimize. Tentokrát ale minimalizujeme logistickou ztrátu a porovnáme výsledek s LogisticRegression ze scikit-learn (hodnotu C jsme nastavili na vysoké číslo, abychom vypnuli regularizaci – více o tom v kapitole 3!).

Funkce log_loss() z předchozího cvičení je v prostředí již definovaná a dataset pro predikci rakoviny prsu ze sklearn (prvních 10 příznaků, standardizovaných) je načtený do proměnných X a y.

Toto cvičení je součástí kurzu

Linear Classifiers in Python

Zobrazit kurz

Pokyny k cvičení

  • Zadej počet trénovacích příkladů do funkce range().
  • Doplň ztrátovou funkci pro logistickou regresi.
  • Porovnej koeficienty s výsledky LogisticRegression ze sklearn.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# The logistic loss, summed over training examples
def my_loss(w):
    s = 0
    for i in range(____):
        raw_model_output = w@X[i]
        s = s + ____(raw_model_output * y[i])
    return s

# Returns the w that makes my_loss(w) smallest
w_fit = minimize(my_loss, X[0]).x
print(w_fit)

# Compare with scikit-learn's LogisticRegression
lr = LogisticRegression(fit_intercept=False, C=1000000).fit(X,y)
print(lr.coef_)
Upravit a spustit kód