开始使用免费开始使用

实现 logistic 回归

这与之前使用 scipy.optimize.minimize "从零实现"线性回归的练习非常相似。不过这一次,我们将最小化 logistic 损失,并与 scikit-learn 的 LogisticRegression 进行比较(我们将 C 设为一个很大的值以关闭正则化;第 3 章会详细说明!)。

上一个练习中的 log_loss() 函数已在您的环境中定义好,且 sklearn 的乳腺癌预测数据集(前 10 个特征,已标准化)已加载到变量 Xy 中。

本练习是课程的一部分

Python 中的线性分类器

查看课程

练习说明

  • 将训练样本数量输入到 range() 中。
  • 填写 logistic 回归的损失函数。
  • 将系数与 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_)
编辑并运行代码