Kom igångKom igång gratis

Implementera logistisk regression

Den här övningen liknar den tidigare där du implementerade linjär regression "från grunden" med hjälp av scipy.optimize.minimize. Den här gången minimerar vi dock det logistiska förlustvärdet och jämför resultatet med scikit-learns LogisticRegression (vi har satt C till ett högt värde för att inaktivera regularisering – mer om det i kapitel 3!).

Funktionen log_loss() från föregående övning är redan definierad i din miljö, och scikit-learns bröstcancerdataset (de första 10 särdragen, standardiserade) är inläst i variablerna X och y.

Den här övningen är en del av kursen

Linjära klassificerare i Python

Visa kurs

Övningsinstruktioner

  • Ange antalet träningsexempel i range().
  • Fyll i förlustfunktionen för logistisk regression.
  • Jämför koefficienterna med scikit-learns LogisticRegression.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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_)
Redigera och kör kod