sklearn初探
机器学习的本质就是借助数学模型理解数据。当我们给模型装上可以适应观测数据的可调参数时,学习就开始了,此时的程序被认为具有从数据中“学习”的能力。一旦模型可以拟合旧的观测数据,那么它们就可以预测并解释新的观测数据。
目前,python有不少可以实现各种机器学习算法的程序库。Scikit-Learn是最流行的程序包之一,它为各种常见机器学习算法提供了高效版本。Scikit-Learn不仅因其干净、统一、管道命令式的API而独具特色,而且它的在线文档又实用、有完整。这种统一的好处是,只要你掌握了Scikit-Learn一种模型的基本用法和语法,就可以非常平滑的过渡到新的模型或算法上。
Scikit-Learn 的评估器(Estimator)API的特点
统一性
所有对象使用共同的接口连接一组方法和统一的文档
内省
所有参数值都有公共属性
限制对象层级
只有算法可以用Python类表示。数据集都用标准数据类型(Numpy数组、Pandas DataFrame、Scipy稀疏矩阵)表示,参数名称用标准的python字符串。
函数组合
许多机器学习任务都可以用一串基本算法实现,Scikit-Learn尽力支持这种可能。
明智的默认值
当模型需要用户设置参数时,Scikit-Learn预先定义适当的默认值
使用Scikit-Learn评估器API的常规步骤
- 通过从Scikit-Learn中导入适当的评估器,选择模型类
- 用合适的数值对模型类进行实例化,配置模型超参数(hyperparameter)
- 整理数据,获取特征矩阵(Xtrain)和目标数组(target)
- 调用模型实例的fit() 方法对数据进行拟合
- 对新数据应用模型:
- 在有监督学习模型中,通常使用predict() 方法预测新数据的标签
- 再无监督的学习模型中,通常使用transform() 或predict() 方法转换或者推断数据的性质
有监督学习——回归(regression)
import numpy as