Scikit Learn - 简介


在本章中,我们将了解什么是 Scikit-Learn 或 Sklearn、Scikit-Learn 的起源以及其他一些相关主题,例如负责开发和维护 Scikit-Learn 的社区和贡献者、其先决条件、安装及其功能。

什么是 Scikit-Learn (Sklearn)

Scikit-learn (Sklearn) 是 Python 中最有用、最强大的机器学习库。它为机器学习和统计建模提供了一系列有效的工具,包括通过 Python 中的一致性接口进行分类、回归、聚类和降维。该库主要用 Python 编写,基于NumPy、SciPyMatplotlib构建。

Scikit-Learn 的起源

它最初称为scikits.learn,最初由 David Cournapeau 在 2007 年作为 Google 夏季代码项目开发。后来,在 2010 年,来自 FIRCA(法国研究院)的 Fabian Pedregosa、Gael Varoquaux、Alexandre Gramfort 和 Vincent Michel计算机科学与自动化),将该项目提升到另一个层次,并于 2010 年 2 月 1 日首次公开发布(v0.1 beta)。

让我们看一下它的版本历史 -

  • 2019 年 5 月:scikit-learn 0.21.0

  • 2019 年 3 月:scikit-learn 0.20.3

  • 2018 年 12 月:scikit-learn 0.20.2

  • 2018 年 11 月:scikit-learn 0.20.1

  • 2018 年 9 月:scikit-learn 0.20.0

  • 2018 年 7 月:scikit-learn 0.19.2

  • 2017 年 7 月:scikit-learn 0.19.0

  • 2016 年 9 月。scikit-learn 0.18.0

  • 2015 年 11 月。scikit-learn 0.17.0

  • 2015 年 3 月。scikit-learn 0.16.0

  • 2014 年 7 月。scikit-learn 0.15.0

  • 2013 年 8 月。scikit-learn 0.14

社区和贡献者

Scikit-learn 是一项社区成果,任何人都可以为其做出贡献。该项目托管在https://github.com/scikit-learn/scikit-learn 上。以下人员目前是 Sklearn 开发和维护的核心贡献者 -

  • Joris Van den Bossche(数据科学家)

  • 托马斯·J·范(软件开发人员)

  • Alexandre Gramfort(机器学习研究员)

  • Olivier Grisel(机器学习专家)

  • 尼古拉斯·哈格(副研究科学家)

  • 安德烈亚斯·穆勒(机器学习科学家)

  • 秦汉民(软件工程师)

  • Adrin Jalali(开源开发人员)

  • Nelle Varoquaux(数据科学研究人员)

  • Roman Yurchak(数据科学家)

Booking.com、JP Morgan、Evernote、Inria、AWeber、Spotify 等各种组织都在使用 Sklearn。

先决条件

在开始使用 scikit-learn 最新版本之前,我们需要以下内容 -

  • Python (>=3.5)

  • NumPy (>= 1.11.0)

  • Scipy (>= 0.17.0)li

  • 作业库 (>= 0.11)

  • Sklearn 绘图功能需要 Matplotlib (>= 1.5.1)。

  • 一些使用数据结构和分析的 scikit-learn 示例需要 Pandas (>= 0.18.0)。

安装

如果您已经安装了 NumPy 和 Scipy,以下是安装 scikit-learn 的两种最简单方法 -

使用点

以下命令可用于通过 pip 安装 scikit-learn -

pip install -U scikit-learn

使用康达

以下命令可用于通过 conda 安装 scikit-learn -

conda install scikit-learn

另一方面,如果您的 Python 工作站上尚未安装 NumPy 和 Scipy,则可以使用pipconda安装它们。

使用 scikit-learn 的另一个选择是使用CanopyAnaconda等 Python 发行版,因为它们都提供了最新版本的 scikit-learn。

特征

Scikit-learn 库不是专注于加载、操作和汇总数据,而是专注于数据建模。Sklearn 提供的一些最受欢迎的模型组如下 -

监督学习算法- 几乎所有流行的监督学习算法,如线性回归、支持向量机(SVM)、决策树等,都是 scikit-learn 的一部分。

无监督学习算法- 另一方面,它还拥有所有流行的无监督学习算法,从聚类、因子分析、PCA(主成分分析)到无监督神经网络。

聚类- 该模型用于对未标记的数据进行分组。

交叉验证- 用于检查监督模型对未见数据的准确性。

降维- 用于减少数据中属性的数量,可进一步用于汇总、可视化和特征选择。

集成方法- 顾名思义,它用于组合多个监督模型的预测。

特征提取- 用于从数据中提取特征以定义图像和文本数据中的属性。

特征选择- 用于识别有用的属性以创建监督模型。

开源- 它是开源库,也可在 BSD 许可下商业使用。