机器学习编程:从编码到深度学习
上QQ阅读APP看书,第一时间看更新

2.2.1 定义模型

要将线性回归转换为能够运行的代码,我们需要某种使用数量表示直线的方法。这就是数学的用武之地。

下面是一个表示经过坐标轴原点的直线的数学方程:

你可能学过这个方程,如果没有印象也没关系。它的含义是:经过原点的每条直线都可以由一个单独的数值进行唯一地表示。通常这个数值称为w,即权重(weight)单词的首字母。你也可以把w看成这条线的斜率,w值越大表示这条线越陡峭。如下图所示:

数学探究:线性方程

如果你不理解方程y=x*w,那么可以看看可汗学院关于线性方程的视频[1]。这些可选视频提供的内容比你阅读本书所需的时间还要多得多——所以你没有必要全部看完。

在我们继续进行下一步的讨论之前,先用一个稍微不同的符号改写一下上述直线方程:

我们将符号y换成了(读作“y-hat”),这是因为不想将Roberto样本数据中的实际y值和预测y值相混淆。虽然这两个符号都代表比萨的销量,但是二者之间存在一个非常重要的差别。是比萨销量的预测值,是我们期望能卖出多少比萨的预测值。相比之下,y是实际的比萨销量,机器学习专家将其称为实际值(ground truth)。

在这个关于符号的简短题外话之后,我们再回到这里的重要概念,即w这个表示直线的常数。换句话说,我们只需要使用w就足以表示代码中的一条直线。

现在我们来编写代码,从预测阶段开始,因为它比训练阶段简单。我们将在稍后解决训练阶段的代码。

[1] www.khanacademy.org/math/algebra/two-var-linear-equations。