ÎncepețiÎncepe gratuit

Implementarea regresiei logistice

Acest exercițiu este foarte asemănător cu cel anterior, în care ai implementat regresia liniară „de la zero" folosind scipy.optimize.minimize. De data aceasta, însă, vom minimiza pierderea logistică și o vom compara cu LogisticRegression din scikit-learn (am setat C la o valoare mare pentru a dezactiva regularizarea; despre asta vom vorbi mai mult în Capitolul 3!).

Funcția log_loss() din exercițiul anterior este deja definită în mediul tău, iar setul de date pentru predicția cancerului de sân din sklearn (primele 10 caracteristici, standardizate) este încărcat în variabilele X și y.

Acest exercițiu face parte din cursul

Clasificatori liniari în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Introdu numărul de exemple de antrenament în range().
  • Completează funcția de pierdere pentru regresia logistică.
  • Compară coeficienții cu cei ai LogisticRegression din sklearn.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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_)
Editează și rulează codul