使用 Python 和 scikit-learn 学习回归算法

建立

  1. 注册或登录。

    • 通过从试用 IBM Watson 页面登录到 IBM Cloud 帐户来激活 Watson Studio。

    • 通过登录 https://dataplatform.cloud.ibm.com 访问 Watson Studio。

  2. 创建一个空项目。

    • 单击“创建项目”或“新建项目”。

    • 选择“创建空项目”。

    • 为项目命名。

    • 选择现有的对象存储服务实例或创建一个新实例。

    • 单击创建

  3. 添加笔记本。

    • 单击“+添加到项目”。

    • 单击“笔记本”。

    • 单击“从 URL”。

    • 提供名称

    • 在“选择运行时”下,选择“**默认 Python 3.6 免费**”。

    • 输入作为笔记本 URLhttps://raw.githubusercontent.com/IBM/ml-learning-path-assets/master/notebooks/regression_with_scikit-learn.ipynb

    • 单击 Create Notebook

  4. 运行笔记本。

    在打开的 Notebook 中,单击运行”以一次运行一个单元。本教程的其余部分遵循笔记本的顺序。

概述

回归是指要预测的特征包含连续值。回归是指通过分析其他自变量之间的关系来预测因变量的过程。有几种已知的算法可以帮助提升这些关系以更好地预测值。

关于数据集

在本教程中,我们使用一个数据集,其中包含购房者在购买房屋之前考虑的各种信息。我们使用这些数据来分析在所有其他相关信息的情况下,我们预测房价的能力。由于前面的教程介绍了在创建模型之前需要执行的各种预处理步骤,因此在本教程中我们将跳过这些详细信息。取而代之的是,我们对不同的回归算法进行了详细的研究,并将其应用于相同的数据集以进行比较。

使用 Python 和 scikit-learn 学习回归算法_第1张图片

使用 Python 和 scikit-learn 学习回归算法_第2张图片

回归算法

以下是我们在本教程中讨论的一些常用回归算法,以及代码示例。

  • 线性回归(简单、多重和多项式)

  • 决策树回归

  • 随机森林树木

  • 梯度提升树

线性回归

当目标与一个或多个预测变量之间存在线性关系时,线性回归模型可预测连续目标。

简单线性回归

这是线性回归的最基本形式,其中要预测的变量仅依赖于另一个变量。这是通过使用通常用于计算直线斜率的公式来计算的。

y = 宽0 + 宽 1 * x1

在前面的等式中,y 表示目标变量,x1 表示自变量。w 1 是指表示 yx1 之间关系的系数,也称为斜率。w0 是常数系数或截距。它指的是 y 相对于自变量始终存在的常数偏移量。

下面的代码示例演示如何使用 sklearn 库计算简单的线性回归。

使用 Python 和 scikit-learn 学习回归算法_第3张图片

使用 Python 和 scikit-learn 学习回归算法_第4张图片

SLR Coefficients

下图显示了模型如何预测测试数据的值与测试值的实际销售价格。由于简单线性回归假定仅依赖于一个变量,因此 3D 视图在此上下文中没有多大意义。当我们讨论多元线性回归时,这种比较会更有意义。我们还显示了另外两个模型指标图表。

使用 Python 和 scikit-learn 学习回归算法_第5张图片

使用 Python 和 scikit-learn 学习回归算法_第6张图片

SLR Metrics

多元线性回归

多元线性回归是简单线性回归的扩展。在此设置中,目标值取决于多个变量。变量的数量取决于用例。通常,主题专家会参与确定有助于更好地预测输出特征的字段。

y = w0 + w 1 x1 + w 2 x2 + .... + w n * xn

在以下代码片段中,您将了解如何使用 sklearn 将数据集拆分为测试集和训练集。为简单起见,我们假设所有因变量都有助于做出有效的预测。有几种方法,如前向选择和后向消除,以选择做出最准确预测所需的最佳色谱柱。这些方法的介绍超出了本教程的范围。

使用 Python 和 scikit-learn 学习回归算法_第7张图片

我们使用 sklearn 库来开发多元线性回归模型。就代码而言,简单线性回归和多元线性回归之间的主要区别在于拟合模型所包含的列数。

使用 Python 和 scikit-learn 学习回归算法_第8张图片

下图显示了之前开发的模型的一些指标。

使用 Python 和 scikit-learn 学习回归算法_第9张图片

使用 Python 和 scikit-learn 学习回归算法_第10张图片

使用 Python 和 scikit-learn 学习回归算法_第11张图片

MLR Metrics

多项式线性回归

通过简单线性回归生成的预测线通常是一条直线。如果简单线性回归或多元线性回归不能准确拟合数据点,我们使用多项式线性回归。以下公式用于后端生成多项式线性回归。

y = w0 + w 1 x 1 + w 2 x2 1 + .... + w n * x nn

尽管我们在前面的公式中使用了自变量的指数,但由于系数的线性组合,该算法不被认为是非线性的。

使用 Python 和 scikit-learn 学习回归算法_第12张图片

为了创建多项式线性回归模型,对数据进行预处理,以创建变量的指数,直至度数值中提到的数字。在下图中,可以看到预处理步骤中的度数设置为 3,这意味着将生成最多 x3 的变量。阶数为 1 的多项式特征与多元线性回归相同。在以下等式中将“度”的值更改为 1 的输出与上一节中创建的模型相同。

使用 Python 和 scikit-learn 学习回归算法_第13张图片

下图显示了一些模型性能指标。3 次多项式线性回归不如多元线性回归有效。我们可以调整一些参数,看看这个算法是否能产生更好的输出,或者你可以得出结论,多元线性回归是一个更适合这个数据集的模型。

使用 Python 和 scikit-learn 学习回归算法_第14张图片

使用 Python 和 scikit-learn 学习回归算法_第15张图片

使用 Python 和 scikit-learn 学习回归算法_第16张图片

PLR Metrics

你可能感兴趣的:(python,scikit-learn,学习,人工智能,深度学习,机器学习)