探索 Scikit-Learn 数据集和估计器

Beginner

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

简介

在本实验中,我们将探索 scikit-learn(Python 中一个流行的机器学习库)中的设置和估计器对象。我们将了解以二维数组表示的数据集,以及如何为 scikit-learn 对其进行预处理。我们还将探讨估计器对象的概念,这些对象用于从数据中学习并进行预测。

虚拟机提示

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

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

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

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 83%。获得了学习者 94% 的好评率。

理解数据集

Scikit-learn 将数据集表示为二维数组,其中第一轴表示样本,第二轴表示特征。让我们通过鸢尾花数据集来看一个例子:

from sklearn import datasets

iris = datasets.load_iris()
data = iris.data
print(data.shape)

输出:

(150, 4)

鸢尾花数据集由 150 个鸢尾花观测值组成,每个观测值由 4 个特征描述。数据数组的形状是 (150, 4)。

重塑数据

有时,数据最初可能不是 scikit-learn 所需的形状。在这种情况下,我们需要对数据进行预处理,将其转换为(n_samples, n_features)形状。重塑数据的一个例子是手写数字数据集,它由 1797 个 8x8 的手写数字图像组成:

digits = datasets.load_digits()
print(digits.images.shape)

输出:

(1797, 8, 8)

为了在 scikit-learn 中使用这个数据集,我们需要将每个 8x8 的图像重塑为长度为 64 的特征向量:

data = digits.images.reshape((digits.images.shape[0], -1))

估计器对象

scikit-learn 中的估计器对象用于从数据中学习并进行预测。它们可以是分类、回归或聚类算法,也可以是从原始数据中提取有用特征的变换器。让我们创建一个估计器对象的简单示例:

from sklearn.base import BaseEstimator

class Estimator(BaseEstimator):
    def __init__(self, param1=0, param2=0):
        self.param1 = param1
        self.param2 = param2

    def fit(self, data):
        ## 拟合方法的实现
        pass

estimator = Estimator()

拟合数据

scikit-learn 实现的主要 API 是估计器对象的fit方法。它将一个数据集(通常是二维数组)作为输入。要使用估计器拟合数据,我们可以调用fit方法:

estimator.fit(data)

估计器参数

估计器对象可以有影响其行为的参数。这些参数可以在实例化估计器时设置,也可以通过修改相应的属性来设置。让我们为我们的示例估计器设置一些参数:

estimator = Estimator(param1=1, param2=2)
print(estimator.param1)

输出:

1

估计出的参数

当使用估计器拟合数据时,参数会从数据中进行估计。所有估计出的参数都是估计器对象的属性,并且以一个下划线结尾。例如:

print(estimator.estimated_param_)

总结

在本实验中,我们学习了 scikit-learn 中的数据集、如何重塑数据以及估计器对象的概念。我们探讨了使用估计器拟合数据、设置参数以及访问估计出的参数。对于使用 scikit-learn 进行统计学习任务而言,对这些设置和估计器对象的理解至关重要。