简介
在本实验中,我们将使用逻辑回归分类器根据鸢尾花数据集(Iris dataset)的前两个特征及其标签进行分类。我们将使用 scikit-learn 库加载和预处理数据集,创建逻辑回归分类器的实例,并拟合数据。最后,我们将在散点图上显示决策边界。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”(Notebook)标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
加载数据集并进行预处理
我们将使用 scikit-learn 库来加载鸢尾花数据集。该数据集包含 3 个类别,每个类别有 50 个实例,每个类别代表一种鸢尾属植物。每个实例有 4 个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.inspection import DecisionBoundaryDisplay
## 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, :2] ## 我们只取前两个特征。
Y = iris.target
创建逻辑回归分类器实例并拟合数据
我们将创建一个逻辑回归分类器实例并拟合数据。
## 创建逻辑回归分类器实例并拟合数据。
logreg = LogisticRegression(C=1e5)
logreg.fit(X, Y)
在散点图上显示决策边界
我们将使用 scikit-learn 库中的 DecisionBoundaryDisplay 在散点图上显示决策边界。
_, ax = plt.subplots(figsize=(4, 3))
DecisionBoundaryDisplay.from_estimator(
logreg,
X,
cmap=plt.cm.Paired,
ax=ax,
response_method="predict",
plot_method="pcolormesh",
shading="auto",
xlabel="Sepal length",
ylabel="Sepal width",
eps=0.5,
)
## 同时绘制训练点
plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolors="k", cmap=plt.cm.Paired)
plt.xticks(())
plt.yticks(())
plt.show()
总结
在本实验中,我们使用逻辑回归分类器根据鸢尾花数据集(Iris dataset)的前两个特征及其标签进行分类。我们使用 scikit-learn 库加载并预处理了数据集,创建了逻辑回归分类器的实例,并对数据进行了拟合。最后,我们在散点图上显示了决策边界。