1.API基础知识
Scikit-Learn评估器API的常用步骤如下所示:
(1)通过从Scikit-Learn中导入适当的评估器类,选择模型类。
(2)用合适的数值对模型类进行实例化,配置模型超参数。
(3)整理数据,通过前面介绍的放法获取特征矩阵和目标数组。
(4)调用模型实例的fit()方法对数据进行拟合。
(5)对数据应用模型:
a. 在有监督学习模型中,通常使用predict()方法预测新数据的标签;
b. 在无监督学习模型中,通常使用transform()或者predict()方法转换或推断数据的性质。
下面通过具体实例来演示上述的过程。
2.简单线性回归
目标任务:为散点数据集(x, y)拟合一条直线。我们使用下面的样本数据来演示回归示例:
我们创建了两组数据,一组50个输入数据x,以及通过斜率为2,截距为-1的线性方程输出的数据y。
对以上数据画出散点图:
有了数据,就可以按照前面所提到的步骤进行实验了。
(1)选择模型类
在Scikit-Learn中,每一个模型类都是一个python类,此处我们直接导入线性回归模型类。
(2)选择模型超参数
当我们选择了模型类后,还有许多参数需要配置。
有一些参数必须在选择模型类时确定好,这些参数称之为超参数(即在模型拟合前必须确定的参数)。
对于线性回归实例来说,可以实例化LinearRegression类并用fit_intercept超参数设置是否想要拟合直线的截距:
此处,对模型的实例化仅仅只是保存了超参数的值,并没有训练。
(3)转换数据为特征矩阵和目标数组
SK-Learn的数据表示方式:二维特征矩阵和一维目标数组。
此处需要对x进行转换,由于y已经符合一维数组要求,故不需要转换:
(4)用模型拟合数据
这一步通过fit()方法完成数据训练:
fit()命令会在模型内部进行大量计算,将运算结果存储在模型属性中,供用户使用。
在Scikit-Learn中,所有fit()方法获得的模型参数都带一条下划线。
上图可以看到通过样本数据拟合得到的直线的斜率(coef_)和截距(intercept_)。
与前面定义的斜率-2和截距-1对比,发现拟合结果与样本非常接近。
(5)预测新数据的标签
模型训练出来后,对不属于训练集的新数据进行预测。此处,我们通过输入x轴坐标来预测y轴坐标:
首先创造出一组新的x输入数据,然后将数据转换为[n_sample, n_feature]的特征矩阵形式,之后将数据输入到模型中。
由上述y值结果可以看到,基本上满足我们线性表达式的计算结构。
最后,将原始数据和拟合结果可视化出来:
至此,我们线性回归模型实例就完整实现了。