始める無料で始める

ロジスティック回帰を実装する

これは、以前に scipy.optimize.minimize を使って線形回帰を「一から」実装した演習ととてもよく似ています。今回はロジスティック損失を最小化し、scikit-learn の LogisticRegression と比較します(正則化を無効にするために C を大きく設定しています。詳しくは第3章で説明します!)。

前の演習で作成した log_loss() 関数はすでに環境に定義済みで、sklearn の乳がん予測データセット(先頭10特徴量、標準化済み)が Xy に読み込まれています。

この演習はコースの一部です

Python で学ぶ線形分類器

コースを見る

演習の手順

  • range() に訓練データ数を入力します。
  • ロジスティック回帰の損失関数を埋めてください。
  • sklearn の LogisticRegression と係数を比較します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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_)
コードを編集して実行