Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
hands-on-ml-zh
提交
6cc4ef93
H
hands-on-ml-zh
项目概览
OpenDocCN
/
hands-on-ml-zh
通知
13
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hands-on-ml-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
6cc4ef93
编写于
11月 29, 2018
作者:
Y
Yu Wang
提交者:
GitHub
11月 29, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修正一些 4.训练模型.md 代码里的拼写错误
上级
c4e2b3ac
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
6 addition
and
6 deletion
+6
-6
docs/4.训练模型.md
docs/4.训练模型.md
+6
-6
未找到文件。
docs/4.训练模型.md
浏览文件 @
6cc4ef93
...
...
@@ -84,7 +84,7 @@ y = 4 + 3 * X + np.random.randn(100, 1)
```
python
X_b
=
np
.
c_
[
np
.
ones
((
100
,
1
)),
X
]
theta_best
=
np
.
linalg
.
inv
(
X_b
.
T
.
dot
(
X_
B
)).
dot
(
X_b
.
T
).
dot
(
y
)
theta_best
=
np
.
linalg
.
inv
(
X_b
.
T
.
dot
(
X_
b
)).
dot
(
X_b
.
T
).
dot
(
y
)
```
我们生产数据的函数实际上是 !
[
y = 4 + 3x_0 + 高斯噪声
](
../images/tex-751d6173162c5bb7b6294ca57e03d5b1.gif
)
。让我们看一下最后的计算结果。
...
...
@@ -101,7 +101,7 @@ array([[4.21509616],[2.77011339]])
```
python
>>>
X_new
=
np
.
array
([[
0
],[
2
]])
>>>
X_new_b
=
np
.
c_
[
np
.
ones
((
2
,
1
)),
X_new
]
>>>
y_predict
=
X_new_b
.
dot
(
theta
.
best
)
>>>
y_predict
=
X_new_b
.
dot
(
theta
_
best
)
>>>
y_predict
array
([[
4.21509616
],[
9.75532293
]])
```
...
...
@@ -226,7 +226,7 @@ theta = np.random.randn(2,1) # 随机初始值
for
iteration
in
range
(
n_iterations
):
gradients
=
2
/
m
*
X_b
.
T
.
dot
(
X_b
.
dot
(
theta
)
-
y
)
theta
=
theta
-
eta
*
gradiens
theta
=
theta
-
eta
*
gradien
t
s
```
这不是太难,让我们看一下最后的结果 !
[
\theta
](
../images/tex-2554a2bb846cffd697389e5dc8912759.gif
)
:
...
...
@@ -282,9 +282,9 @@ for epoch in range(n_epochs):
random_index
=
np
.
random
.
randint
(
m
)
xi
=
X_b
[
random_index
:
random_index
+
1
]
yi
=
y
[
random_index
:
random_index
+
1
]
gradients
=
2
*
xi
.
T
.
dot
(
xi
,
dot
(
theta
)
-
yi
)
gradients
=
2
*
xi
.
T
.
dot
(
xi
.
dot
(
theta
)
-
yi
)
eta
=
learning_schedule
(
epoch
*
m
+
i
)
theta
=
theta
-
eta
*
gradiens
theta
=
theta
-
eta
*
gradien
t
s
```
按习惯来讲,我们进行 !
[
m
](
../images/tex-6f8f57715090da2632453988d9a1501b.gif
)
轮的迭代,每一轮迭代被称为一代。在整个训练集上,随机梯度下降迭代了 1000 次时,一般在第 50 次的时候就可以达到一个比较好的结果。
...
...
@@ -306,7 +306,7 @@ array([[4.21076011],[2.748560791]])
```
python
from
sklearn.linear_model
import
SGDRegressor
sgd_reg
+
SGDRr
egressor
(
n_iter
=
50
,
penalty
=
None
,
eta0
=
0.1
)
sgd_reg
=
SGDR
egressor
(
n_iter
=
50
,
penalty
=
None
,
eta0
=
0.1
)
sgd_reg
.
fit
(
X
,
y
.
ravel
())
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录