对比来了!Julia 能打败 Python 和 R 成最终赢家吗?

  • 时间:
  • 浏览:1



作者利用已有的 Python 学习经验想出如下方案,输入代码:

R 有一三个 truncnorm 用于避免截断正态

”,了解相关信息都可以关注“

在这篇文章中,作者通过一三个简单的似然函数优化(Maximum Likelihood Optimization)问題来对比 Julia,R 和 Python。这是一三个比较小的优化问題,性能上的差异表现可能不太明显,但避免问題的过程能很好地反应三者其他人的优劣势。







结果将输出:

可能你需用避免 60 个 10 秒的优化问題,第一次执行需至少 17 秒,接下来的优化不需用编译,至少只需用 10 秒。或者 ,总运行时长为 60 7 秒。什么都有有,当用 Julia 避免一三个 10⁵ 秒的问題时,这 7 秒基本都可以忽略不记;但可能用 Julia 避免 5 秒甚至更小的问題时,这 7 秒的差异就有点痛 明显。

Julia 的过低

观察序列 Q1,Q2,...,Qn,大伙儿需用找到优化该似然函数的参数 μ 和 σ:

可能你用 Julia 避免一三个 10 秒内的问題,它的优势不须能体现出来。 而一旦避免的问題变繁复,需至少比较长的时间,这时 Julia 的优势就会慢慢体现了。

许多人用 Python 和 Julia 做过对比实验。以 10⁵ 为界点进行计算,当数值比 10⁵ 更小时 Python 比 Julia 快的。但数值大于 10⁵ 后,Julia 的传输速率就比 Python 快什么都有有了。

Julia 布道者 ChrisRackauckas 以前说过:

在统计学上,这是截断的正态分布的最大似然估计(MLE)。

Julia 第一次优化



以下是作者使用 Julia 进行测试的情况汇报。使用 Julia 中的 Optim.jl,都可以直接使用特殊符号(symbols)作为变量名称,按照使用习惯,此处作者使用了希腊字母 μσ。Julia 还有一三个 JuMP.jl 包用于优化问題。但 JuMP.jl 更适合用于更高级的优化问題,用在此处有点痛 小题大做。

Python 的优势

作者在撰写本文时,对这四种 语言的熟悉程度如下:

由此看出 Julia 的优势

Julia 在执行第一次优化用了 7 秒,比 R 和 Python 都慢。对此,ChrisRackauckas 指出:



R 的过低

综上所述,四种 语言的综合对比如下:

Python 的过低



R 的优势



输出结果:

通常大伙儿会尝试优化对数似然:

原文发布时间为:2018-09-4本文来自云栖社区公司战略合作 伙伴“

”。

作者在下方硬编码了在 MLE 估计中使用的 Q_t 的值:

输出效果如下,排版看起来很舒服,也支持数学公示显示: