scikit-learn机器学习库算法分类及模块
scikit-learn,简称sklearn,作为Python中重要的机器学习库,支持包括分类、回归、降维和聚类四大机器学习算法,以及特征提取、数据预处理和模型评估三大模块。
sklearn基本建模流程
实例化建立评估模型对象->通过模型接口训练模型->通过模型接口提取需要的信息。
主要设计原则
一致性
所有对象共享一个简单一致的界面(接口)。
拟合器:fit()方法
基于数据估算参数的任意对象,使用的参数是一个数据集(对应特征数据集X, 有监督算法还需要一个标签数据集y),
引导估算过程的任意其他参数称为超参数(所谓"超参数",就是需要人为输入,算法不能通过直接计算得出的参数),必须设置为实例变量。
转换器:transform()方法
使用估算器转换数据集,转换过程依赖于学习参数。
可以使用便捷方式:fit_transform(),相当于先fit()再transform()。(fit_transform有时被优化过,速度更快)
预测器:predict()方法
使用估算器预测新数据,返回包含预测结果的数据。
score()方法
用于度量给定测试集的预测效果的好坏。
其结果为:连续y使用R2,分类y使用准确率accuracy,其中:
R2 =(1-u/v),
u=((y_true - y_pred) ** 2).sum(),
v=((y_true - y_true.mean()) ** 2).sum();
accuracy=分类算法正确的分类数/总分类数。
监控
检查所有参数,所有估算器的超参数可以通过公共实例变量访问,所有估算器的学习参数都可以通过有下划线后缀的公共实例变量访问。
防止类扩散
对象类型固定,数据集被表示为Numpy数组或Scipy稀疏矩阵,超参是普通的Python字符或数字。
合成
现有的构件尽可能重用,可以轻松创建一个流水线Pipeline。
合理默认值
大多数参数提供合理默认值,可以轻松搭建一个基本的工作系统。