美文网首页
二.有监督学习示例:简单线性回归

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

作者: 愿风去了 | 来源:发表于2018-10-21 17:13 被阅读36次

    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.haomeiwen.com/subject/ewybzftx.html