📜  如何在 sklearn – Python中使用 datasets.fetch_mldata()?(1)

📅  最后修改于: 2023-12-03 15:38:26.636000             🧑  作者: Mango

如何在 sklearn – Python中使用 datasets.fetch_mldata()

在机器学习中,数据集的质量对于模型的好坏起着决定性作用。scikit-learn提供了许多自带数据集,但是这些数据集并不一定适用于所有的应用场景。所以,我们需要使用一些其他的方法来获取更符合我们需求的数据集。

datasets.fetch_mldata()是scikit-learn中一个非常有用的函数。它可以帮助我们从多种数据源中获取数据。下面详细介绍一下如何在scikit-learn中使用datasets.fetch_mldata()

导入依赖

首先,我们需要导入以下依赖:

from sklearn.datasets import fetch_mldata
from sklearn.model_selection import train_test_split
加载数据集

接下来,我们需要加载数据集。在这里,我们将加载MNIST手写数字数据集。可以通过以下代码来加载MNIST数据集:

mnist = fetch_mldata('MNIST original')
查看数据集信息

加载完成后,我们可以来看一下数据集的信息,如下所示:

print(mnist.data.shape)
print(mnist.target.shape)

我们来解释一下这两个输出:

mnist.data.shape:这个输出的结果是(70000, 784)。这意味着整个MNIST数据集共有70000个样本,每个样本由784个特征组成。

mnist.target.shape:这个输出的结果是(70000,)。这意味着整个MNIST数据集共有70000个目标值(标签),每个目标值都对应一个样本。

分割数据集

接下来,我们需要把数据集分成训练集和测试集,以便我们可以对模型进行训练和测试。我们可以使用train_test_split()函数将数据集分成训练集和测试集,代码如下所示:

X_train, X_test, y_train, y_test = train_test_split(mnist.data, mnist.target, train_size=0.8, test_size=0.2, random_state=42)
完整代码

最终,我们将所有的代码组合起来,形成完整的过程:

from sklearn.datasets import fetch_mldata
from sklearn.model_selection import train_test_split

mnist = fetch_mldata('MNIST original')

X_train, X_test, y_train, y_test = train_test_split(mnist.data, mnist.target, train_size=0.8, test_size=0.2, random_state=42)

print(X_train.shape)
print(X_test.shape)

以上代码将MNIST数据集加载到mnist变量中,并使用train_test_split()函数将数据集划分为训练集和测试集。

输出的结果如下:

(56000, 784)
(14000, 784)

这表示我们用20%的数据做测试,80%的数据做训练,而每个样本都由784个像素值组成。

总结:这篇文章主要介绍了如何在Python中使用datasets.fetch_mldata()函数获取数据集。您可以将这些数据集用于构建机器学习模型并评估它们的性能。