鸢尾花数据集上的逻辑回归分类器

Beginner

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

简介

在本实验中,我们将使用逻辑回归分类器根据鸢尾花数据集(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 库加载并预处理了数据集,创建了逻辑回归分类器的实例,并对数据进行了拟合。最后,我们在散点图上显示了决策边界。