🚀 原文地址:https://scikit-learn.org/stable/getting_started.html

本篇文章主要介绍一下 Scikit-Learn 所提供的一些主要功能,它假定我们已经掌握了机器学习的基础知识,包括模型拟合、预测、交叉验证等。

Scikit-Learn 是一个开源的机器学习库,它支持有监督学习和无监督学习。同时,它还提供了用于模型拟合、数据预处理、模型选择和评估以及其他非常实用的多种工具。

1. 拟合和预测:估算器基础

Scikit-Learn 提供了数十种内置的机器学习算法和模型,称为估算器。每个估算器都可以使用fit方法去拟合一些数据。

下面是一个简单的示例,其中我们使用了一些非常基本的数据来训练RandomForestClassifier

  1. from sklearn.ensemble import RandomForestClassifier
  2. clf = RandomForestClassifier(random_state=0)
  3. X = [[1, 2, 3],
  4. [11, 12, 13]]
  5. y = [0, 1]
  6. clf.fit(X, y)

fit方法通常接收 2 个输入:

  • 样本矩阵X:通常大小为(n_samples, n_features),这意味着一行为一个样本,一列为一个特征。
  • 目标值y:通常为一维数组,该数组中索引值i的值对应样本矩阵X中第i行样本的目标值
    • 对于回归任务而言,y为真实数字;
    • 对于分类任务而言,y为整数(或任何其他离散值);
    • 对于无监督学习,y则无需指定。

虽然某些估算器可以使用其他格式(例如稀疏矩阵),但通常Xy为 numpy 数组或者等效的类似数组的数据类型。

一旦估算器拟合后,便可以在新数据上进行预测,得出对应的目标值,我们并不需要重新训练估算器:

  1. # 预测训练样本的标签(类别)
  2. clf.predict(X) # array([0, 1])
  3. # 预测新数据的标签(类别)
  4. clf.predict([[4, 5, 6], [14, 15, 16]]) # array([0, 1])

2. 转换器和预处理器

机器学习的工作流程通常由不同部分所组成,常规的流水线(Pipeline)包含数据预处理(例如数据的转换或插入)以及