跳至主要內容

sklearn 算法库

程序员李某某大约 3 分钟

sklearn 算法库

概述

简介

  • [官网] (https://scikit-learn.org/stable/index.htmlopen in new window)
  • sklearn是构建在 NumPy、SciPy 和 matplotlib 上的相关申明,后面我们会看到,sklearn 中核心能够处理的对象类型就是 NumPy 当中的数组(array)
  • 同时sklearn中的诸多数学计算过程也都是基于 SciPy 中的相关功能来进行的实现。
  • 值得注意的是,底层数据结构对算法库的影响是至关重要的,在分布式计算框架 Spark 中,算法库就有两类
    • 其一是围绕 Spark 基本数据结构 RDD 构建的 ML 包
    • 其二则是围绕 Spark 高级数据结构 DataSet 和 DataFrame 构建的 MLLib 包
    • 当然由于基于更高级的数据结构所构建的算法模型更易于使用,因此ML包已经不再更新了

安装与更新

建议使用 Anaconda,自带 sklearn

# 安装
pip install -U scikit-learn

# 更新
pip install --upgrade sklearn

python -m pip show scikit-learn # 查看 scikit-learn 的安装版本和位置
python -m pip freeze # 查看安装在活动 virtualenv 中的所有软件包
python -c "import sklearn;sklearn.show_versions()" # 显示 scikit-learn 的版本号

官网安装页面open in new window

该页面还细心的给出了虚拟环境不同版本第三方包冲突后的解决方案,以及sklearn 的包的依赖包的安装方法,包括新版sklearn所需基础依赖包的版本号等。另外,该页面还 给出了新版sklearn的Mac M1版本的包的安装方法,由此可见sklearn官网内容的详细程度

当然,对于通过Anaconda安装Python的小伙伴来说,sklearn包已经在安装Anaconda的过程中安装好 了,并且不同平台的Anaconda就已经自带了能够在对应平台运行的sklearn包,我们可以直接通过下述语 句进行sklearn版本的查看:

核心对象类型

sklearn 核心对象类型:评估器(estimator)

很多功能完整的第三方库其实都有各自定义的核心对象类型,如NumPy中的数组(Array)、Pandas 中的DataFrame、以及 PyTorch 中的张量(tensor)等,当然这些由第三方库定义的数据结构实际上都是定义在源码中的某个类,在调用这些对象类型时实际上都是在实例化对应的类。 而对于sklearn来说,定义的核心对象类型就是评估器。我们可以将评估器就理解成一个个机器学习模型,而sklearn的建模过程最核心的步骤就是围绕着评估器进行模型的训练。 同样,围绕评估器的使用也基本分为两步,其一是实例化该对象,其二则是围绕某数据进行模型训练。 接下来,我们就尝试调用sklearn中的线性回归评估器(模型)来进行线性回归建模实验。

首先是准备数据,我们还是以此前定义的、基本规律满足y = 2x1 - x2 + 1分布回归类数据集:

from sklearn.linear_model import LinearRegression
model = LinearRegression()

算法模型

上次编辑于:
贡献者: 李元昊