math - Octave:哪种方法更有效

标签 math optimization octave mathematical-optimization

我正在 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 上的一个非常喜怒无常的环境中运行,我不知道如何自己进行基准测试。

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

最佳答案

这将检查挂钟时间:

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

关于math - Octave:哪种方法更有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826405/

相关文章:

c++ - 通过凹多边形计算位置聚类中心约束的最快方法是什么

r - Octave/Matlab 中的scale() R 函数等效项

matlab - 直方图产生的值低于预期

matlab - Octave信号包安装

math - 将圆柱体变成球体而不夹在两极

algorithm - 如何使用 Triangulation 确定具有 3 个节点的用户的位置?

mysql - 优化 MySQL 查询

java - 重新设计两个类以避免代码重复

c - 是否可以修复我创建函数树的算法中的这个缺陷?

python - 如何检测非方阵的所有行是否在python中正交