随机分类数据集绘图

Beginner

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

简介

本实验展示了如何使用 Python 的 scikit-learn 库绘制几个随机生成的分类数据集。它使用在 x 轴和 y 轴上绘制的两个特征来可视化所有数据集。每个点的颜色代表其类别标签。

虚拟机提示

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

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

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

导入库

我们首先需要导入所需的库。我们将使用 matplotlib 和 scikit-learn。

import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.datasets import make_blobs
from sklearn.datasets import make_gaussian_quantiles

设置图形大小并调整子图

我们设置图形大小并调整子图,使其更具可读性。

plt.figure(figsize=(8, 8))
plt.subplots_adjust(bottom=0.05, top=0.9, left=0.05, right=0.95)

每个类别一个信息特征、一个聚类

我们创建一个每个类别有一个信息特征和一个聚类的数据集,并将其绘制出来。

plt.subplot(321)
plt.title("One informative feature, one cluster per class", fontsize="small")
X1, Y1 = make_classification(n_features=2, n_redundant=0, n_informative=1, n_clusters_per_class=1)
plt.scatter(X1[:, 0], X1[:, 1], marker="o", c=Y1, s=25, edgecolor="k")

每个类别两个信息特征、一个聚类

我们创建一个每个类别有两个信息特征和一个聚类的数据集,并将其绘制出来。

plt.subplot(322)
plt.title("Two informative features, one cluster per class", fontsize="small")
X1, Y1 = make_classification(n_features=2, n_redundant=0, n_informative=2, n_clusters_per_class=1)
plt.scatter(X1[:, 0], X1[:, 1], marker="o", c=Y1, s=25, edgecolor="k")

每个类别两个信息特征、两个聚类

我们创建一个每个类别有两个信息特征和两个聚类的数据集,并将其绘制出来。

plt.subplot(323)
plt.title("Two informative features, two clusters per class", fontsize="small")
X2, Y2 = make_classification(n_features=2, n_redundant=0, n_informative=2)
plt.scatter(X2[:, 0], X2[:, 1], marker="o", c=Y2, s=25, edgecolor="k")

多类别、两个信息特征、一个聚类

我们创建一个具有多个类别、两个信息特征和一个聚类的数据集,并将其绘制出来。

plt.subplot(324)
plt.title("Multi-class, two informative features, one cluster", fontsize="small")
X1, Y1 = make_classification(n_features=2, n_redundant=0, n_informative=2, n_clusters_per_class=1, n_classes=3)
plt.scatter(X1[:, 0], X1[:, 1], marker="o", c=Y1, s=25, edgecolor="k")

三个高斯分布数据集

我们创建一个包含三个高斯分布数据集的数据集,并将其绘制出来。

plt.subplot(325)
plt.title("Three blobs", fontsize="small")
X1, Y1 = make_blobs(n_features=2, centers=3)
plt.scatter(X1[:, 0], X1[:, 1], marker="o", c=Y1, s=25, edgecolor="k")

高斯分布划分为三个分位数

我们创建一个将高斯分布划分为三个分位数的数据集,并将其绘制出来。

plt.subplot(326)
plt.title("Gaussian divided into three quantiles", fontsize="small")
X1, Y1 = make_gaussian_quantiles(n_features=2, n_classes=3)
plt.scatter(X1[:, 0], X1[:, 1], marker="o", c=Y1, s=25, edgecolor="k")

显示绘图

我们显示最终的绘图。

plt.show()

总结

本实验展示了如何使用 Python 的 scikit-learn 库绘制几个随机生成的分类数据集。它使用两个特征在 x 轴和 y 轴上绘制所有数据集的可视化图形。每个点的颜色代表其类别标签。