Sklearn,该工具包是目前用于机器学习的五大主流Python包之一,适用于预处理、建模、验证及调优等机器学习开发的主要流程,覆盖除部分深度学习算法之外几乎所有常用的机器学习算法。
- Sklearn的环境搭建与安装;
- Sklearn的常用类及具体的使用场景。
3.1 Sklearn的环境搭建与安装
Sklearn又称为scikit-learn;
该库提供了机器学习涉及的4个流程中的函数接口--数据预处理、建模、模型校验评估及模型调优;
在建模方面提供的机器学习算法涵盖监督学习、无监督学习及半监督学习--其中包括但不限于分类、聚类、回归、降维等算法;
Sklearn并不是作为一个独立的库使用的,其在SciPy[1]及NumPy的基础上做了相应的扩展;
python3 -m pip install sklearn #安装Sklearn前需要安装scipy和numpy包依赖
3.2 Sklearn常用类及其结构
仅仅几行代码实现不同的算法;
脏数据清洗;
常用模块:
1.数据处理:
- 数据源(sklearn.datasets)--该模块提供加载数据集的实用程序,以及人工数据生成器的方法。
#调用鸢尾花数据源
- 一般数据预处理(sklearn.preprocessing)--模块包括但不限于缩放、中心化、归一化、二值化和归一化方法。其具体使用将在后面的章节详细介绍。
除此之外,对非一般数据,如文本数据或者图形数据,也存在对应的预处理方法,而这种方法也被称为特征提取。
- 特征提取(sklearn.feature_extraction)--从原始数据中提取特征,目前包括从文本和图像中提取特征的方法。值得注意的是,对文本数据提取和图形数据提取在不同的模块。
- 文本数据提取(sklearn.feature_extraction.image)--从图形数据中抽取特征,其方法有补丁提取、像素到像素梯度连接图转化(Graph of Pixel Gradient Connections)等。
2.模型建立:模型建立是模型开发整个流程中最关键的环节,其它环节都是围绕模型而存在的。模型从大的类目上分为监督学习[2]、无监督学习[3]和半监督学习;如果更近一步划分,在这些大的类目的基础上又存在诸如聚类、分类、回归、降维等小的类目:
- 聚类(sklearn.cluster.*)——聚类是一种无监督方法,其将特征相近的数据划归到同一类,并不需要对其数据本身标注标签。在此类中,收录了几乎全部主流的聚类方法,如K-means聚类、均值偏移聚类、亲和传播、DBSCAN等。
- 降维(sklearn.decomposition.*)——该模块包括一些矩阵分解算法,如主成分分析、NMF或者独立成因分析等,大部分算法都可以看作一种降维技术。降维属于一种无监督学习方法。
- 高斯过程(sklearn.gaussian_process.*)——高斯过程既可以用于分类,也可以用于回归,其假设前提是大量独立的、均匀微小的随机变量的总和近似地服从高斯分布,通过对训练数据的高斯假设,生成相应的拟合函数。
- 广义线性模型(sklearn.linear_model.*)——广义线性模型模块包含了常用的广义线性模型集。它包括岭回归、贝叶斯回归、LASSO和弹性网络回归。
- 流形学习(sklearn.manifold.*)——流形学习的本质实际上是从高维采样数据中恢复低维流形结构,即找到高维空间中的低维流形,这也是一种降维方法,同样,该模块包含ISOMAP、局部线性嵌入等嵌入方法。
- 高斯混合(sklearn.mixture.*)——该模块包括高斯混合建模方法,其假设前提是任意模型满足多个高斯模型的叠加组合。
- 多类别、多标签分类(sklearn.multiclass.*)——该模块提供了多类别学习算法,其中包括一对多、多对多、纠错输出码等方法。
- 朴素贝叶斯(sklearn.naive_bayes.*)——该模块包括朴素贝叶斯算法,是一种基于贝叶斯定理和强(朴素)特征独立性假设的监督学习方法。
- 最临近方法(sklearnneighbors.*)——该模块包括最临近算法,是聚类中常见的一种方法。
- 半监督学习(sklearn.semi_supervised.*)——该模块包括半监督学习算法,其思路是利用少量的标记数据和大量的未标记数据进行分类,代表性方法有标签传播及标签扩散。
- 支持向量机(sklearn.svm.*)——该模块包括支持向量机的各种算法,其算法可用于回归、分类等场景。
- 决策树(sklearn.tree.*)——该模块包括决策树算法,其算法可用于回归和分类。
- 集成学习(sklearn.ensemble.*)——该模块包括基于集成的分类、回归和异常检测方法。
以上是Sklearn能够提供的主流机器学习方法,当然,它也提供深度学习的模型实现,但是更全面的模型实现在Keras库中,在Sklearn环境不进行介绍。
3.模型验证:
模型验证(sklearn.metrics.*和部分sklearn.model_selection.*)还有成对验证(Pairwise Validation)、双聚类(Biclustering)验证等方法。
4.模型优化:
模型验证之后,如果不能满足业务场景对模型的要求,那么此时需要提高模型的性能。
在Sklearn中,模型调优主要是对参数的尝试(穷举、随机或者给定参数集合),并通过验证得到最优解的超参数。其涉及的类为sklearn.model_selection.*。
每晚8点更新
|《机器学习从入门到入职-张威》解读,如有侵权立即删除|
参考
- ^Scipy是基于Numpy在科学计算领域非常强大的一个库。
- ^训练集有y
- ^训练集无y