矢量化或求和作为矩阵运算

时间:2013-05-06 04:30:04

标签: octave vectorization

gradient descent成本函数

有以下定义

enter image description here

将假设函数定义为

enter image description here

我提出的多变量线性回归是

theta = theta - alpha * 1/m * ([theta', -1]*[X';y']*X)';
h_theta = 1/(2*m)* (X*theta - y)'*(X*theta-y);

(八度音符,'表示矩阵转置,[A, n]表示向标量值为n的矩阵A添加新列,[A; B]表示将矩阵B附加到矩阵A行-wise)

我正确地完成了它的工作我可以告诉它(情节看起来还不错),但我有一种强烈的感觉,它不必要地复杂。

如何使用尽可能少的矩阵运算来编写它(当然没有元素操作)?

2 个答案:

答案 0 :(得分:1)

我不认为这是不必要的复杂,而是你想要的。矩阵运算很好,因为您不必自己循环元素或执行元素操作。我记得在网上上课,我的解决方案看起来很相似。

答案 1 :(得分:0)

你拥有它的方式是最有效的方式,因为它是完全矢量化的。它可以通过在求和上使用for循环来完成,但是这在处理能力方面效率非常低。