您现在的位置是:首页 >技术教程 >训练机器学习模型,可使用 Sklearn 提供的 16 个数据集 【下篇】网站首页技术教程

训练机器学习模型,可使用 Sklearn 提供的 16 个数据集 【下篇】

ReganYue 2023-05-23 08:00:01
简介训练机器学习模型,可使用 Sklearn 提供的 16 个数据集 【下篇】

数据是机器学习算法的动力,scikit-learn或sklearn提供了高质量的数据集,被研究人员、从业人员和爱好者广泛使用。Scikit-learn(sklearn)是一个建立在SciPy之上的机器学习的Python模块。它的独特之处在于其拥有大量的算法、十分易用以及能够与其他Python库进行整合。

什么是 “Sklearn数据集”?

Sklearn数据集作为scikit-learn(sklearn)库的一部分,所以它们是预先安装在库中的。因此,我们可以很容易地访问和加载这些数据集,而不需要单独下载它们。

要使用这些其中一个特定的数据集,可以简单地从sklearn.datasets模块中导入,并调用适当的函数将数据加载到程序中。

这些数据集通常都是经过预处理的,可以随时使用,这对于需要试验不同机器学习模型和算法的数据从业者来说,可以节省大量时间和精力。
在这里插入图片描述

真实的Sklearn数据集

7. Boston Housing

波士顿住房数据集包含了马萨诸塞州波士顿地区的住房信息。它有大约506行和14列的数据。

数据集中的一些变量包括:

  • CRIM - 各镇的人均犯罪率。
  • INDUS - 每个城镇的非零售商业用地比例。
  • CHAS - 查尔斯河虚拟变量(=1,如果区块与河流相连;否则为0)。
  • NOX - 一氧化氮的浓度(每1000万份)。
  • RM - 每个住宅的平均房间数。
  • AGE - 1940年以前建造的自建房的比例。
  • DIS - 到波士顿五个就业中心的加权距离。
  • RAD - 辐射状高速公路的可达性指数。
  • TAX - 每10,000美元的财产税全额税率。
  • PTRATIO - 各镇的学生-教师比率。
  • B - 1000(Bk - 0.63)^2,其中-Bk是各镇黑人的比例。
  • LSTAT - 人口中地位较低的百分比。
  • MEDV - 业主自住房屋的中位价值,单位为1000美元。

可以使用sklearn.datasets模块的load_boston函数直接从scikit-learn加载波士顿住房数据集。

from sklearn.datasets import load_boston

# Load the Boston Housing dataset
boston = load_boston()

# Print the dataset description
print(boston.describe())

以上是使用sklearn加载波士顿住房数据集的代码。于2023年3月29日从https://scikit-learn.org/0.15/modules/generated/sklearn.datasets.load_boston.html获取。
在这里插入图片描述

8. Olivetti Faces

奥利维蒂人脸数据集是1992年4月至1994年4月期间在AT&T实验室拍摄的人脸灰度图像的集合。它包含10个人的400张图像,每个人有40张在不同角度和不同光线条件下拍摄的图像。

你可以通过使用数据集模块中的fetch_olivetti_faces函数在sklearn中加载Olivetti脸部数据集。

from sklearn.datasets import fetch_olivetti_faces

# Load the dataset
faces = fetch_olivetti_faces()

# Get the data and target labels
X = faces.data
y = faces.target

这是使用sklearn加载Olivetti Faces数据集的代码。于2023年3月29日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_olivetti_faces.html获取。

9. California Housing

这个sklearn数据集包含了关于房屋价值中位数的信息,以及加利福尼亚的人口普查区的属性。它还包括20,640个实例和8个特征。

数据集中的一些变量:

MedInc–街区的收入中位数。
HouseAge - 街区内房屋的中位年龄。
AveRooms - 每个家庭的平均房间数。
AveBedrms - 每个家庭的平均卧室数量。
Population - 街区的人口。
AveOccup–家庭平均占用率。
Latitude - 街区的纬度,以十进制为单位。
Longitude - 街区的经度,以小数点后的度数表示。

你可以使用sklearn的fetch_california_housing函数来加载加州住房数据集。

from sklearn.datasets import fetch_california_housing

# Load the dataset
california_housing = fetch_california_housing()

# Get the features and target variable
X = california_housing.data
y = california_housing.target 

使用sklearn加载加州住房数据集的代码。于2023年3月29日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html获取。
在这里插入图片描述

10. MNIST

MNIST数据集在机器学习和计算机视觉领域很受欢迎并被广泛使用。它由70,000张手写数字0-9的灰度图像组成,其中60,000张用于训练,10,000张用于测试。每张图像的大小为28x28像素,并有一个相应的标签,表示它所代表的数字。

你可以使用以下代码从sklearn加载MNIST数据集:

from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784')

注意:MNIST数据集是Digits数据集的一个子集。

上面是使用sklearn加载MNIST数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_openml.html#sklearn.datasets.fetch_openml获取。

11. Fashion-MNIST

Fashion-MNIST 数据集是由Zalando Research创建的,作为原始MNIST数据集的替代。Fashion-MNIST数据集由70,000张灰度图像组成(训练集60,000张,测试集10,000张),都是服装相关的内容。

这些图像大小为28x28像素,代表了10个不同类别的服装,包括T恤/上衣、长裤、套头衫、连衣裙、大衣、凉鞋、衬衫、运动鞋、包和踝靴。它类似于原始的MNIST数据集,但由于服装类别的复杂性和种类更多,分类任务更具挑战性。

你可以使用fetch_openml函数加载这个sklearn数据集。

from sklearn.datasets import fetch_openml

fmnist = fetch_openml(name='Fashion-MNIST')

使用sklearn加载Fashion-MNIST数据集的代码。取自 https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_openml.html#sklearn.datasets.fetch_openml。

Generated Sklearn数据集

Generated Sklearn数据集是合成数据集,使用Python的sklearn库生成。它们被用于测试、基准测试和开发机器学习算法/模型。

12. make_classification

这个函数生成一个随机的n类分类数据集,具有指定数量的样本、特征和信息特征。

下面是一个生成这个sklearn数据集的示例代码,有100个样本、5个特征和3个类:

from sklearn.datasets import make_classification

X, y = make_classification(n_samples=100, n_features=5, n_informative=3, n_classes=3, random_state=42)

这段代码生成了一个有100个样本和5个特征的数据集,其中有3个类和3个信息性特征。剩下的特征将是多余的或是数据噪声。

使用sklearn加载make_classification数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_classification.html#sklearn.datasets.make_classification获取。

13. make_regression

这个函数生成一个具有指定数量的样本、特征和数据噪音的随机回归数据集。

下面是生成这个sklearn数据集的示例代码,有100个样本,5个特征,数据噪音水平为0.1:

from sklearn.datasets import make_regression

X, y = make_regression(n_samples=100, n_features=5, noise=0.1, random_state=42)

这段代码生成了一个有100个样本和5个特征的数据集,噪声水平为0.1。目标变量y将是一个连续变量。

使用sklearn加载make_regression数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_regression.html#sklearn.datasets.make_regression获取。

14. make_blobs

这个函数生成一个具有指定数量的样本和聚类的随机数据集。

下面是一个生成具有100个样本和3个聚类的sklearn数据集的示例代码:

from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=100, centers=3, random_state=42)

这段代码生成了一个有100个样本和2个特征(x和y坐标)的数据集,有3个以随机位置为中心的聚类,并且没有噪音数据。

上面是使用sklearn加载make_blobs数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_blobs.html#sklearn.datasets.make_blobs获取。

15. make_moons and make_circles

这些函数生成具有非线性边界的数据集,对测试非线性分类算法很有用。

下面是一个加载make_moons数据集的示例代码:

from sklearn.datasets import make_moons

X, y = make_moons(n_samples=1000, noise=0.2, random_state=42)

这段代码生成了一个有1000个样本和2个特征(x和y坐标)的数据集,两类之间有一个非线性的边界,并且在数据中加入了0.2个标准差的高斯噪声。

使用sklearn加载make_moons数据集的代码。2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_moons.html#sklearn.datasets.make_moons。

下面是一个生成和加载make_circles数据集的示例代码:

from sklearn.datasets import make_circles

X, y = make_circles(n_samples=1000, noise=0.05, random_state=42)

使用sklearn加载make_circles数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_circles.html#sklearn.datasets.make_circles获取。

16. make_sparse_coded_signal

这个函数生成了一个稀疏编码信号数据集,对测试压缩感应算法很有用。

下面是一个加载这个sklearn数据集的示例代码:

from sklearn.datasets import make_sparse_coded_signal

X, y, w = make_sparse_coded_signal(n_samples=100, n_components=10, n_features=50, n_nonzero_coefs=3, random_state=42)

这段代码生成了一个有100个样本、50个特征和10个原子的稀疏编码信号数据集。

使用sklearn加载make_sparse_coded_signal数据集的代码。2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_sparse_coded_signal.html#sklearn-datasets-make-sparse-coded-signal。

在这里插入图片描述

使用Sklearn数据集的常见场景

  • Iris - 这个Sklearn数据集通常用于分类任务,并被用作测试分类算法的基准数据集。

  • Diabetes - 这个数据集包含糖尿病患者的医疗信息,用于医疗分析中的分类和回归任务。

  • Digits - 这个sklearn数据集包含手写数字的图像,通常用于图像分类和模式识别任务。

  • Linnerud - 这个数据集包含20名运动员的体能和医疗数据,通常用于多变量回归分析。

  • Wine - 这个sklearn数据集包含葡萄酒的化学分析,通常用于分类和聚类任务。

  • Breast Cancer Wisconsin - 这个数据集包含乳腺癌患者的医疗信息,通常用于医疗分析中的分类任务。

  • Boston Housing - 这个sklearn数据集包含关于波士顿住房的信息,通常用于回归任务。

  • Olivetti Faces - 该数据集包含人脸的灰度图像,通常用于图像分类和面部识别任务。

  • California Housing - 这个sklearn数据集包含关于加州住房的信息,通常用于回归任务。

  • MNIST - 这个数据集包含手写数字的图像,通常用于图像分类和模式识别任务。

  • Fashion-MNIST - 这个sklearn数据集包含服装项目的图像,通常用于图像分类和模式识别任务。

  • make_classification - 这个数据集是一个随机生成的数据集,用于二进制和多类别分类任务。

  • make_regression - 这个数据集是一个随机生成的数据集,用于回归任务。

  • make_blobs - 这个sklearn数据集是一个随机生成的数据集,用于聚类任务。

  • make_moons 和 make_circles - 这些数据集是为分类任务随机生成的数据集,通常用于测试非线性分类器。

  • make_sparse_coded_signal - 这个数据集是一个随机生成的数据集,用于信号处理中的稀疏编码任务。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。