【机器学习】Scikit-learn介绍

一、Scikit-learn简介

Scikit-learn是一个支持有监督和无监督学习的开源机器学习库。它还为模型拟合、数据预处理、模型选择和评估以及许多其他实用程序提供了各种工具。

二、 拟合和预测:估算器基础 Fitting and predicting: estimator basics

(一)estimator

estimators:sklearn提供的内置的机器学习算法和模型,统称为估计器。每个估计器都可以用它的拟合方法fit来拟合某些数据。

(二)fit方法

fit方法通常接受两个输入:样本矩阵/设计矩阵 X ,X 的size为(n_samples, n_features),即样本数为行,特征为列。目标值 y 是回归任务的实数,或分类的整数(或任何其他离散值集)。对于无监督学习任务,不需要指定 y 。 y 通常是一维数组,其中第 i 个条目对应于 X 的第 i 个样本(行)的目标。X和y通常都是numpy数组或等效的数据类型。
一旦估计器被拟合,它就可以用于预测新数据的目标值。并且不需要重新训练估计器。

三、转换器和预处理器 Transformers and pre-processors

机器学习工作流通常由不同的部分组成。一个典型的管道(pipeline)由一个转换或插补数据的预处理步骤和一个预测目标值的最终预测器组成。
pipeline = a pre-processing step(transform or impute the data)+ a final predictor/estimator(predicts target value)
在 scikit-learn 中,预处理器和转换器遵循与 estimator 对象相同的 API(它们实际上都继承自同一个 BaseEstimator 类)。转换器对象没有预测方法,而是输出新变换的样本矩阵 X 的变换方法。
ColumnTransformer 列转换器:对不同的特征应用不同的变换

四、管道:链接预处理器和估计器 Pipelines: chaining pre-processors and estimators

管道提供了与常规估计器相同的API:它可以通过fit和predict进行拟合并用于预测。使用管道还可以防止数据泄漏。

五、模型评估 Model evaluation

多种方法,特别是针对cross-validation

六、自动参数搜索 Automatic parameter searches

所有的估计器都有可以调整的参数(超参数 hyper-parameters)。估计量的泛化能力通常主要取决于几个参数。超参数的确定主要取决于数据。
Scikit-learn 提供了自动寻找最佳参数组合的工具(通过交叉验证)。

注意:在实践中,您几乎总是希望搜索管道,而不是单个估计器。其中一个主要原因是,如果您在不使用管道的情况下对整个数据集应用预处理步骤,然后执行任何类型的交叉验证,您将打破训练和测试数据之间独立性的基本假设。实际上,由于您使用整个数据集对数据进行了预处理,因此有关测试集的一些信息可供训练集使用。这将导致高估估计器的泛化能力(您可以在Kaggle的文章中阅读更多)。
使用管道进行交叉验证和搜索将在很大程度上避免这种常见的陷阱。

参考:
scikit-learn 官方文档
scikit-learn 中文文档
机器学习框架之sklearn简介
scikit-learn 使用实例

上一篇:《机器学习Python实现_10_08_集成学习_bagging_randomforest实现》


下一篇:AlertView动画