09.11 實例對比 Julia, R, Python,誰是狼語言?

我們知道,百度首頁的結果一定是廣大人民群眾最關注、最為熟知的內容。

而如此一門小眾的語言,居然能蓋過著名女影星,登上搜索結果第一條,可見它的火爆程度。

就此事件,記者詢問了身邊的程序員。程序員紛紛表示可以給記者分享珍藏在硬盤裡,Julia 歷年來出演的所有影片


實例對比 Julia, R, Python,誰是狼語言?


所以記者認為有必要解釋一下 Julia 到底是什麼:


實例對比 Julia, R, Python,誰是狼語言?


這門語言很年輕,誕生至今也不到10年,前段時間才正式進入1.0版本。

所以大家下次看到招聘要求10年Julia開發經驗的,絕對不要去。

Julia,R 和 Python 誰的勢力大

因為 R 語言設計的初衷就是應用在科研領域。所以這次的三方勢力比拼,我們限制在數據研究領域:


實例對比 Julia, R, Python,誰是狼語言?


根據上圖 KDnugget 的調查顯示,2016年的時候,R 佔據了 42% 的份額成為 dalao,Python 緊隨其後成為 dalao 的小老弟,Julia 根本就默默無聞。

沒想到短短一年時間,雙方的位置就互換了。然後 Julia 還是保持了默默無聞。

可見即使在特別垂直的領域,Python 這種粘合劑語言配合強大的第三方庫,也是擁有恐怖的戰力。

Julia,R 和 Python 誰更狠一點?

背景介紹

就此問題,人工智能頭條記者找到了戴卓嘉。他是一名擁有10年金融開發經驗的數據科學家、全棧開發者、信用風險模型團隊leader。並獲得授權,翻譯他的文章《Julia vs R vs Python: simple optimization》。戴卓嘉對三種語言的熟悉程度分別是:
實例對比 Julia, R, Python,誰是狼語言?


有人做過測試,不依賴第三方裝備的情況下,在計算比10⁵更小數的時候 Python 還是要比Julia快的。從10⁵開始,Julia 的速度就比 Python 比更快還快了。

這也是為什麼 Julia 的佈道者 Chris Rackauckas 說,在處理10秒內就能解決的小問題時,並不能體現出 Julia 的優勢。而一旦問題複雜到一定程度,Julia 的優勢就體現出來了。

本次實例,嘗試使用三種語言,分別去優化一個似然函數。屬於比較小的優化問題,可能在性能上的差距不是很明顯。但在解決問題的過程中,還是很好的體現了三者之間的優劣勢。

接下來,我們就開始這段優化吧。

問題描述

指定一個觀察序列 Q₁, Q₂, Q₃...Q៷,我們的目標是找出可以優化下面這個似然函數的參數μ和σ


實例對比 Julia, R, Python,誰是狼語言?



通常我們是去優化對數似然


實例對比 Julia, R, Python,誰是狼語言?


在統計學上,這是截斷正態分佈的最大似然估計(MLE)。

使用 Julia

利用Optim.jl對符號的支持,可以直接使用希臘字母μσ作為變量名。


實例對比 Julia, R, Python,誰是狼語言?



在下面硬編碼了準備在MLE估計中使用的 Q_t 的值


實例對比 Julia, R, Python,誰是狼語言?


最終輸出效果,看起來非常舒服,格式經過精心的排版,描述也經過了精心的處理。完美的支持數學公式顯示。


實例對比 Julia, R, Python,誰是狼語言?



評分:


實例對比 Julia, R, Python,誰是狼語言?


使用 R

使用 truncnorm包來處理截斷正態


實例對比 Julia, R, Python,誰是狼語言?



輸出結果顯示


實例對比 Julia, R, Python,誰是狼語言?



只能用一個詞形容:簡單粗暴!

評分:


實例對比 Julia, R, Python,誰是狼語言?


使用 Python

代碼


實例對比 Julia, R, Python,誰是狼語言?


輸出結果顯示


實例對比 Julia, R, Python,誰是狼語言?



雖然比 R 是強了不少,但跟 Julia 還是沒法比。而且不支持數學公式

評分


實例對比 Julia, R, Python,誰是狼語言?




最終用一個表格來總結一下此次對比結果:


實例對比 Julia, R, Python,誰是狼語言?



分享到:


相關文章: