Bootstrap

Scikit-learn内置的数据集

数据集是我们学习和研究机器学习不可或缺的基础,Scikit-learn库内置了丰富的数据集资源,非常适合初学者用来练习和验证机器学习算法的效果。

一、鸢尾花数据集

鸢尾花数据集(Iris Dataset)是机器学习领域中最著名的数据集之一,常被用于分类问题的演示和算法的测试。

数据集概览:

  • 样本数量:150个样本

  • 特征数量:4个特征,花瓣长度(Sepal Length)、花瓣宽度(Sepal Width)、花萼长度(Petal Length)、花萼宽度(Petal Width)

  • 标签数量:3个标签类别,鸢尾草(Iris Setosa)、蝴蝶花(Iris Versicolour)、维吉尼亚鸢尾(Iris Virginica)

数据集的应用:

  • 作为机器学习入门教学的实例数据集。

  • 测试分类算法的性能,如K近邻(KNN)、支持向量机(SVM)、决策树、随机森林等。

  • 进行数据可视化和降维的练习,例如使用散点图矩阵展示特征之间的关系,或使用PCA(主成分分析)进行数据降维。

在Scikit-learn中加载鸢尾花数据集的代码如下:

from sklearn.datasets import load_iris

# 加载鸢尾花数据集
iris = load_iris()

# 查看特征名称
print("特征名称:", iris.feature_names)

# 查看类别名称
print("标签名称:", iris.target_names)

# 显示数据集的形状
print("\n特征集形状:", iris.data.shape)

# 显示目标数据的形状
print("标签集形状:", iris.target.shape)

# 查看数据特征
print("\n前几个特征数据:\n", iris.data[:5])

# 查看目标标签
print("前几个标签数据:\n", iris.target[:5])
  • 输出结果:

图片

二、手写数字数据集

手写数字数据集(Digits Dataset)是一个在机器学习和计算机视觉领域中非常流行的数据集,特别是在进行数字识别任务时。这个数据集包含了1797个8x8像素的灰度手写数字图像,每个图像都是一个介于0到9之间的数字。

数据集概览:

  • 样本数量:1797个样本。

  • 图像大小:8x8像素。

  • 标签数量:10个(0到9的每个数字)。

  • 颜色空间:灰度图像,即每个像素点只有一个灰度值。

数据集的应用:

  • 分类任务:手写数字数据集通常用于监督学习中的分类任务,特别是多类分类。

  • 数据可视化:由于图像大小较小,可以用于展示数据的分布和形态。

  • 模型训练和测试:用于训练和测试不同的图像识别和分类算法。

在Scikit-learn中加载手写数字数据集的代码如下:

from sklearn.datasets import load_digits

# 加载手写数字数据集
digits = load_digits()

# 获取特征数据和目标数据
X_digits = digits.data
y_digits = digits.target

# 特征数据是8x8的像素值数组
# 目标数据是对应的数字标签,从0到9

# 显示特征名称
print("特征名称:", digits.feature_names)

# 显示目标名称
print("标签名称:", digits.target_names)

# 显示数据集的形状
print("\n特征数据形状:", X_digits.shape)

# 显示目标数据的形状
print("标签数据形状:", y_digits.shape)

print("\n前几个样本图像:")

# 显示前几个图像
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 10, figsize=(10, 3))
for i, ax in enumerate(axes):
    ax.imshow(X_digits[i].reshape(8, 8), cmap=plt.cm.binary, interpolation='nearest')
    ax.text(0.5, 0.5, str(y_digits[i]), color='red', fontweight='bold',
            verticalalignment='center', horizontalalignment='center')
    ax.axis('off')
plt.show()
  • 输出结果:

图片

三、葡萄酒数据集

葡萄酒数据集(Wine Dataset)是另一个在机器学习中常用的数据集,特别是在进行分类任务时。这个数据集最初由意大利伊斯普拉的C.N.R.研究所的Forina等人收集,用于化学和生物指标的分析。

数据集概览:

  • 样本数量:178个样本。

  • 特征数量:13个化学指标,包括酒精含量、苹果酸含量、柠檬酸含量、残留糖量、氯化物含量、游离硫、总硫、硫酸盐、密度、pH值和色度等。

  • 标签数量:3个葡萄酒类别,基于葡萄酒的类型或品种。

数据集的应用:

  • 分类任务:葡萄酒数据集通常用于分类任务,特别是多类分类问题。

  • 模型训练和测试:用于训练和测试不同的分类算法,如决策树、随机森林、支持向量机等。

在Scikit-learn中加载葡萄酒数据集的代码如下:

from sklearn.datasets import load_wine

# 加载葡萄酒数据集
wine = load_wine()

# 获取特征数据和目标数据
X_wine = wine.data
y_wine = wine.target

# 显示特征名称
print("特征名称:", wine.feature_names)

# 显示目标名称
print("标签名称:", wine.target_names)

# 显示数据集的形状
print("\n特征数据形状:", X_wine.shape)

# 显示目标数据的形状
print("标签数据形状:", y_wine.shape)

# 显示前几个样本的数据和标签
print("\n前几个样本的特征数据:\n", X_wine[:5])
print("对应的标签数据:\n", y_wine[:5])
  • 输出结果:

图片

四、乳腺癌数据集

乳腺癌数据集(Breast Cancer Dataset)是一个重要的医学数据集,用于通过计算机辅助诊断来提高乳腺癌的诊断率。

数据集概览:

  • 样本数量:569个样本,其中良性样本357个,恶性样本212个。

  • 特征数量:30个数值型特征,这些特征描述了乳腺肿瘤的不同测量值,如肿瘤的半径、纹理、周长、面积、平滑度、紧密度、凹陷度、凹陷点数、对称性以及分形维数等 。

  • 标签数量:2个标签,代表肿瘤的良性(benign)或恶性(malignant)状态,通常用"M"和"B"表示,其中"M"代表恶性,"B"代表良性 。

数据集的应用:

  • 该数据集被用来训练和测试不同的机器学习模型,如LDA和XGBoost算法,以构建乳腺癌预测模型 。

在Scikit-learn中加载乳腺癌数据集的代码如下:

from sklearn.datasets import load_breast_cancer

# 加载乳腺癌数据集
breast_cancer = load_breast_cancer()

# 查看特征名称
print("特征名称:", breast_cancer.feature_names)

# 查看目标名称
print("标签名称:", breast_cancer.target_names)

# 查看数据集的形状
print("\n特征数据形状:", breast_cancer.data.shape)

# 查看标签数据的形状
print("标签数据形状:", breast_cancer.target.shape)

# 显示前几个样本的数据和标签
print("\n前几个样本的特征数据:\n", breast_cancer.data[:5])
print("对应的目标标签(房价中位数):\n", breast_cancer.target[:5])
  • 输出结果:

图片

五、加州房价数据集

加州房价数据集(California Housing Dataset)是一个基于1990年加州人口普查数据构建的回归数据集。

数据集概览:

  • 样本数量:20,640个样本。

  • 特征数量:9个特征值,分别为经度(longitude)、纬度(latitude)、住房中位年龄(housing_median_age)、房间总数(total_rooms)、卧室总数(total_bedrooms,存在一些缺失值)、人口数(population)、家庭数(households)、收入中位数(median_income)和海洋接近度(ocean_proximity,一个分类特征)。

  • 标签类别:房价中位数(median_house_value),以100,000美元为单位。

数据集的应用:

  • 通常用于回归任务,预测房屋价格。

在Scikit-learn中加载葡萄酒数据集的代码如下:

from sklearn.datasets import fetch_california_housing

# 加载加州房价数据集
california_housing = fetch_california_housing()

# 显示特征名称
print("特征名称:", california_housing.feature_names)

# 显示目标变量名称
print("标签名称:", california_housing.target_names)

# 显示数据集的形状
print("\n特征数据形状:", california_housing.data.shape)

# 显示目标数据的形状
print("标签数据形状:", california_housing.target.shape)

# 显示前几个样本的数据和标签
print("\n前几个样本的特征数据:\n", california_housing.data[:5])
print("对应的目标标签(房价中位数):\n", california_housing.target[:5])
  • 输出结果:

图片

总结

Scikit-learn内置的各种数据集为你的数据分析和机器学习项目提供强大支持。赶快动手尝试Scikit-learn内置数据集,开启你的机器学习之旅吧!

;