Skip to Content
机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
book

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

by Aurélien Géron
October 2020
Intermediate to advanced
693 pages
16h 26m
Chinese
China Machine Press
Content preview from 机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
训练模型
113
array([[4.21509616],
[2.77011339]])
伪逆本身是使用被称为奇异值分解(Singular Value DecompositionSVD)的标准矩阵分
解技术来计算的,可以将训练集矩阵
X
分解为三个矩阵
U Σ V
T
的乘积(请参阅 numpy.
linalg.svd())。伪逆的计算公式为
X
+
=
V
Σ
+
U
T
。为了计算矩阵
Σ
+
,该算法取
Σ
将所有小于一个小阈值的值设置为零,然后将所有非零值替换成它们的倒数,最后把结
果矩阵转置。这种方法比计算标准方程更有效,再加上它可以很好地处理边缘情况:的
确,如果矩阵
X
T
X
是不可逆的(即奇异的),标准方程可能没有解,例如
m
<
n
或某些
特征是多余的,但伪逆总是有定义的。
4.1.2 计算复杂度
标准方程计算
X
T
X
的逆,
X
T
X
是一个 (
n
+ 1)
×
(
n
+ 1) 的矩阵(
n
是特征数量)。对这种
矩阵求逆的计算复杂度通常为
O
(
n
2.4
)
O
(
n
3
) 之间,取决于具体实现。换句话说,如果
将特征数量翻倍,那么计算时间将乘以大约 2
2.4
= 5.3 倍到 2
3
= 8 倍之间。
Scikit-Learn LinearRegression 类使用的 SVD 方法的复杂度约为
O
(
n
2
)。如果你将
特征数量加倍,那计算时间大约是原来的 4 倍。
特征数量比较大(例如 100 000)时,标准方程和 SVD 的计算将极其缓
慢。好的一面是,相对于训练集中的实例数量(
O
(
m
))来说,两个都是线
性的,所以能够有效地处理大量的训练集,只要内存足够。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

算法技术手册(原书第2 版)

算法技术手册(原书第2 版)

George T.Heineman, Gary Pollice, Stanley Selkow
Go语言编程

Go语言编程

威廉·肯尼迪
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey

Publisher Resources

ISBN: 9787111665977