擅长:python、mysql、java
<p>另一个答案解释了为什么理论上一种计算方法比另一种好。然而,他们没有给出一种方法来测试哪种解决方案实际显示出更好的结果。这里是:</p>
<pre><code>def test(a, x, b):
res = a.dot(x).as_matrix() - b.as_matrix()
print(np.linalg.norm(res))
test(XtX_lamb, x, XtY)
test(XtX_lamb, th, XtY)
test(XtX_lamb, theta, XtY)
</code></pre>
<p>计算了线性系统误差向量的范数2。
结果是:</p>
<pre><code>np.linalg.solve - 0.000488340357871
np.linalg.lstsq - 1.75520748498
normal equation - 16.1628614202
</code></pre>
<p>因此,linalg.solve确实显示了最精确的结果。</p>