Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
ml-for-humans-zh
提交
3750e403
M
ml-for-humans-zh
项目概览
OpenDocCN
/
ml-for-humans-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
ml-for-humans-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3750e403
编写于
10月 12, 2017
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2.1.
上级
f921b646
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
68 addition
and
2 deletion
+68
-2
2.1.md
2.1.md
+68
-2
未找到文件。
2.1.md
浏览文件 @
3750e403
...
...
@@ -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`
),使模型预测中的误差最小。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录