全站搜索未启用
跳到主要内容

9.4.1 scikit-learn简介

scikit-learn项目最早由数据科学家David Cournapeau(大卫·库尔纳波) 在2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。对它进行维护也主要依靠开源社区。

作为专门面向机器学习的Python开源框架,scikit-learn可以在一定范围内为开发者提供非常好的帮助。它实现了各种各样成熟的算法,容易安装和使用,样例丰富,而且文档也非常详细。

9.4.2安装 scikit-learn

安装Scikit-learn的要求:Python的版本高于 3.5、NumPy的版本高于1.11.0、 SciPy的版本高于0.17.0 以及joblib的版本高于 0.11。

scikit-learn同样具有绘图功能(函数以“plot_”开头,需要Matplotlib的版本高于1.5.1) 。一些scikit-learn示例可能需要一个或多个额外依赖项,如scikit-image版本高于 0.12.3、Panda版本高于0.18.0。

9.4.3使用 scikit-learn 介绍机器学习
1. 机器学习:问题设置

(1)监督学习,其中数据带有一个附加属性,即我们想要预测的结果值。

(2)无监督学习, 其中训练数据由没有任何相应目标值的一组输入向量组成。

2. 加载示例数据集

数据集是一个类似字典的对象,它保存有关数据的所有数据和一些元数据。该数据存储在.data成员中,它是n_samples、n_features数组。在监督问题的情况下,一个或多个响应变量存储在.target成员中。

3. 学习和预测

MNIST digits数据集的任务是给出图像,来预测识别出其表示的数字。

在 scikit-learn 中,分类的估计器是一个Python对象,它实现了fit(X, y)和predict(T) 等方法。

4. 预估对象

拟合数据: 实现数据拟合的方法,estimator是 scikit-learn实现的主要 API。estimators是基于数据进行学习的任何对象,它可以是一个分类器、回归或者是一个聚类算法,或者是从原始数据中提取/过滤有用特征的变换器。

9.4.4监督学习:从高维观察预测输出变量
1. K最近邻分类器

K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:在特征空间中,如果一个样本附近的k个最近(特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。

2. 线性回归

线性回归(Linear Regression)是最简单的拟合线性模型形式,是指通过调整数据集的一系列参数令残差平方和尽可能小。

3. 收缩

如果每个维度的数据点很少,观察噪声就会导致很大的方差。

4. 分类

多分类(multi-classification)是指分类的结果不只两类,而是有多个类别。逻辑回归(Logistic Regression)本质上是一种二分类的算法,但是可以通过搭建多个二分类器的思想,实现多分类,使用多个二分类器的投票为最后分类做决定。

5. 支持向量机

支持向量机(Support Vector Machine, SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面。

9.4.5模型选择:选择估计量及其参数
1. 模型分数评价和交叉验证

每一个估计量都有一个可以在新数据上判定拟合质量(或预期值)的score方法。

2. 交叉验证生成器

为了更好地预测精度,我们可以连续分解用于训练和测试用的数据。这被称为 K折交叉验证。

9.4.6无监督学习: 寻求数据表示
1. K-means 聚类算法

关于聚类有很多不同的聚类标准和相关算法,其中最简便的是 K-means聚类算法 。

k-means聚类算法无法保证聚类结果完全绝对真实地反应实际情况。第一,选择正确、合适的聚类数量是一件困难的事情;第二,该算法对初始值的设置较敏感,容易陷入局部最优。

2. 分层聚类算法

分层聚类算法是一种旨在构建聚类层次结构的分析方法,一般来说,实现该算法的大多数方法可分为以下两种:

聚合(agglomerative)——自底向上的方法。

分裂(divisive)——自顶向下的方法。

3. 分解

分解是指将一个信号转换成多个成分并且加载。

如果 X 是多维数据,那么我们试图解决的问题是在不同的观察基础上对数据进行重写。我们希望学习得到载荷L和成分C,使得X = L C。提取成分C有多种不同的方法:

(1)主成分分析。

(2)独立成分分析。

最后修改: 2020年02月4日 Tuesday 17:16