From 3750e4037d5a1e06505f3511a61bc9b3c20cd952 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Thu, 12 Oct 2017 18:16:34 +0800 Subject: [PATCH] 2.1. --- 2.1.md | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/2.1.md b/2.1.md index ad3ae2a..3d0d468 100644 --- a/2.1.md +++ b/2.1.md @@ -20,7 +20,7 @@ Y = f(X) + ϵ ``` -> `X`(输入)为高等教育的年限 +> `X`(输入)为高等教育的年数 > `Y`(输出)为年收入 > `f`为描述`X`和`Y`关系的函数 > `ϵ`(epsilon)为随机误差项(可正可负),均值为零 @@ -39,7 +39,7 @@ income = ($5,000 * years_of_education) + baseline_income > 这个方式就是构建一个解的示例(而不是学习一个解,就像下面描述的线性回归方法那样)。 -通过包含一些规则,关于学位类型、工作年限、学校的层次,以及其它,你可以提出一个更复杂的模型。例如,“如果他们完成了学士或更高的学位,就将收入估计为 1.5 倍”。 +通过包含一些规则,关于学位类型、工作年数、学校的层次,以及其它,你可以提出一个更复杂的模型。例如,“如果他们完成了学士或更高的学位,就将收入估计为 1.5 倍”。 但是这种类型的,明确的基于规则的规划,对于复杂数据不是很有效。想像一下,尝试设计一个图像分类器算法,它由`if-then`语句组成。这些语句描述了像素亮度的组合,来判断它是否是一只猫。 @@ -49,4 +49,70 @@ income = ($5,000 * years_of_education) + baseline_income 监督学习的目标是,当获得`X`已知`Y`未知的新样本时,尽可能准确地预测`Y`。下面我们会探索多种最常见的方法。 +## 监督学习的两个任务:回归和分类 + +> 回归:预测连续数值。某个房子售价是多少? + +> 分类:分配标签。某幅画是猫还是狗? + +这一节的剩余部分会关注回归。2.2 节中我们会深入分类方法。 + +## 回归:预测连续值 + +回归预测连续的目标变量`Y`。它允许你估计一个值,例如放假或者人类寿命,基于输入数据`X`。 + +这里,目标变量的意思是我们所关心的,用于预测的位置变量。连续的意思是,在`Y`可以取的值中,不存在间隔(不连续)。另一方面,离散变量,只可以取有限个数的值。例如,孩子的数量是个连续变量。 + +收入的预测是个经典的回归问题。你的输入数据`X`包含所有数据集中的个体的相关信息,可以用于预测收入,例如教育年数、工作年数、职位、或者邮政编码。这些属性叫做特征,它们可以是数值(例如工作年数),或者分类(例如职位和研究领域)。 + +你可能想要极可能多的,和这些特征相关的训练观测值,来定位输出`Y`,使你的模型可以学习`X`和`Y`之间的关系`f`。 + +数据分为训练集和测试集。训练集拥有标签,所以你的模型可以从这些带标签的样本中学习。测试集不带标签,也就是,你还不知道你尝试预测的值。你的模型可以推广到从未见过的情况,以便它在测试数据上表现良好,这个十分重要。 + +> 回归 + +> `Y = f(X) + ϵ`,其中`X = (x1, x2 … xn)` + +> 训练:机器从带标签的训练数据习得`f` + +> 测试:机器从不带标签的测试数据预测`Y` + +> 要注意,`X`可以是个张量,它的维度可以是任意的。一维张量是向量(一行多列),二维张量是矩阵(多行多列)。你也可以拥有三、四、五甚至更高维的张量(例如三维张量拥有行、列和深度)。为了回顾这些术语,请参考[线性代数回顾](https://www.deeplearningbook.org/contents/linear_algebra.html)的前几页。 + +在我们的非常简单的二维示例中,它的形式是`csv`违建,其中每行包含一个人的教育水平和收入。使用更多特征来添加更多的列,你可以拥有更加复杂但是可能更加准确的模型。 + +![](img/2-1.png) + +## 所以我们如何解决这些问题? + +我们如何构建模型,在现实世界中做出更准确、实用的预测?我们可以通过使用监督学习算法来实现。 + +现在让我们进行最有意思的部分:了解算法。我们会探索几种方式来实现回归和分类,并且展示机器学习概念中的关键。 + +## 线性回归(普通最小二乘) + +> 画一条直线。是的,这也算机器学习。 + +首先,我们专注于使用线性回归解决收入预测问题,因为线性模型不是很适合图像识别任务(这是深度学习的领域,我们之后也会探索)。 + +我们拥有数据集`X`,以及对应的目标值`Y`。普通最小二乘(OLS)的目标是,习得一个线性模型,如果我们得到了一个未见过的`x`,我们可以用它来预测新的`y`,并且误差尽可能小。我们打算基于某个人的教育年数,猜测它的收入。 + +```py +X_train = [4, 5, 0, 2, …, 6] # 高等教育的年数 +Y_train = [80, 91.5, 42, 55, …, 100] # 对应的年收入,单位为千美元 +``` + +![](img/2-2.png) + +线性回归是个参数化方法,也就是说,它需要作出`X`和`Y`的函数形式的假设(我们之后会涉及非参数化方法的示例)。我们的模型是个函数,使用特定的`x`预测`ŷ`: + +![](img/2-3.png) + +> 这里,我们做出了一个明确的假设,`X`和`Y`是存在线性关系的。也就是说,对于每个`X`中的单位增长,`Y`的增长(或下降)不变。 + +`β_0`是纵截距,`β1`是直线斜率,也就是教育每增加一年,收入增长(或者下降)多少。 + +我们的目标是,习得模型参数(这里是`β0`和`β1`),使模型预测中的误差最小。 + + -- GitLab