逻辑回归模型

Beginner

This tutorial is from open-source community. Access the source code

简介

本实验将提供一份关于如何使用 Python 的 scikit-learn 库创建逻辑回归模型的分步指南。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。

导入必要的库

第一步是导入本实验中将会用到的必要库。我们将使用 numpymatplotlibscipysklearn

import matplotlib.pyplot as plt
import numpy as np
from scipy.special import expit
from sklearn.linear_model import LinearRegression, LogisticRegression

生成一个简单的数据集

下一步是生成一个简单的数据集,它是一条带有一些高斯噪声的直线。我们将使用 numpy 来生成这个数据集。

## 生成一个简单的数据集,它只是一条带有一些高斯噪声的直线:
xmin, xmax = -5, 5
n_samples = 100
np.random.seed(0)
X = np.random.normal(size=n_samples)
y = (X > 0).astype(float)
X[X > 0] *= 4
X += 0.3 * np.random.normal(size=n_samples)

X = X[:, np.newaxis]

拟合分类器

生成数据集后,我们将使用 scikit-learn 中的 LogisticRegression 来拟合分类器。

## 拟合分类器
clf = LogisticRegression(C=1e5)
clf.fit(X, y)

绘制结果

最后一步是绘制结果。我们将使用 matplotlib 创建示例数据的散点图,并绘制逻辑回归模型和线性回归模型。

## 并绘制结果
plt.figure(1, figsize=(4, 3))
plt.clf()
plt.scatter(X.ravel(), y, label="示例数据", color="黑色", zorder=20)
X_test = np.linspace(-5, 10, 300)

损失 = expit(X_test * clf.coef_ + clf.intercept_).ravel()
plt.plot(X_test, 损失, label="逻辑回归模型", color="红色", linewidth=3)

ols = LinearRegression()
ols.fit(X, y)
plt.plot(
    X_test,
    ols.coef_ * X_test + ols.intercept_,
    label="线性回归模型",
    linewidth=1,
)
plt.axhline(0.5, color=".5")

plt.ylabel("y")
plt.xlabel("X")
plt.xticks(range(-5, 10))
plt.yticks([0, 0.5, 1])
plt.ylim(-0.25, 1.25)
plt.xlim(-4, 10)
plt.legend(
    loc="lower right",
    fontsize="small",
)
plt.tight_layout()
plt.show()

总结

本实验提供了一份关于如何使用 Python 的 scikit-learn 库创建逻辑回归模型的分步指南。我们首先导入必要的库,生成一个简单的数据集,拟合分类器,最后绘制结果。