简介
在本实验中,我们将探索 scikit-learn(Python 中一个流行的机器学习库)中的设置和估计器对象。我们将了解以二维数组表示的数据集,以及如何为 scikit-learn 对其进行预处理。我们还将探讨估计器对象的概念,这些对象用于从数据中学习并进行预测。
虚拟机提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。
理解数据集
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 进行统计学习任务而言,对这些设置和估计器对象的理解至关重要。