4

我正在 GNU Octave 中尝试一些机器学习算法,例如平方误差成本函数。我所说的正确的矢量化论坛是:

J = (X * theta - y)' * (X * theta - y) * (1/(2*m)

其中 X 是 m x n+1矩阵,theta 是n+1 x 1向量,y 是m x 1向量。我的问题是第二种方式是否更快一点:

J = sum((X * theta - y).^2) * (1/(2*m))

因为它只计算X * theta -y一次。作为 octave 的新手,它似乎在 windows 上运行在一个非常有气质的环境中,我不知道如何对自己进行基准测试。

由于这比任何事情都更令人好奇,请随时告诉我这甚至都没有关系。

4

1 回答 1

4

这会检查挂钟时间:

octave:2> tic; sleep(3); toc
Elapsed time is 3.00161 seconds.
octave:3> help tic

分辨率不是太大,因此您可能希望在循环中多次运行计算。

要测量 CPU 时间,请使用cputime

octave:7> cputime()
ans =  0.21000
octave:8> sleep(3)
octave:9> cputime()
ans =  0.21000
于 2012-10-10T21:42:42.933 回答