二.有监督学习示例:简单线性回归

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值结果可以看到,基本上满足我们线性表达式的计算结构。

最后,将原始数据和拟合结果可视化出来:

《二.有监督学习示例:简单线性回归》

至此,我们线性回归模型实例就完整实现了。

    原文作者:愿风去了
    原文地址: https://www.jianshu.com/p/664812979804
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞