銀行員 RとPythonに出会う

Rネタを中心に、いろいろと更新していきます

Juliaを試す

Juliaについて

Juliaはプログラミング言語の一種です。

特徴を一言でいうと「処理が速い、わかりやすい」だそうです。

2009年から開発が始まった言語(ようするに開発途上)でバージョンも0系だったのですが、8月にバージョン1.0系がリリースされたとのことで試すことにしました。

日々RとPythonで業務を行ってい特段不自由もしていないのですが、やはり膨大な処理となると実行終了まで1日放置は当たり前で、挙句にミスに気づいたときは卒倒ものです。

実行時間が短くなれば、トライアンドエラーにもっとたくさんの時間を費やすことができるので生産性が上がります。

なのでJuliaには大いに期待です。

余談ですが、科学技術計算によく使われる言語の速度比較記事がありましたので、リンクを張っておきます。

言語自体の仕組みについては全然理解していないので、正直に数字を見て真に受けるしかないのですが、見るからには確かに爆速です。

処理の内容によっては差が無いものもあるようです。

modelingguru.nasa.gov

 

 Juliaのインストール

こちらの公式サイトよりダウンロードしました。

https://julialang.org/

 

IDEはJupyter notebookを使用しています。

僕はPythonでJupyter notebookに慣れ親しんでいるので他は見ませんでしたが、JunoというATOMベースのIDEがメジャーなようです。

 

Jupyter notebookの設定は以下の通りで完了しました。

  1. Juliaのインストール
  2. REPLを立ち上げる
  3. import Pkg
  4. ] ←(パッケージモードになる)
  5. add IJulia
  6. バックスペース ←(パッケージモードから抜ける)
  7. using IJulia
  8. notebook()

 

Rのサンプルデータで 回帰を試す

# 必要なパッケージのインポート

# using~でもimport~でもどっちも可

using GLM

using DataFrames

using RDatasets

using Plots

using PyPlot  # PyPlot!!!

 

今回は、RDatasetsからHousing Datasetで試します。

data = dataset("Ecdat", "Housing")

f:id:d_s:20181011002154p:plain

 

今回はサクッと回帰を行いたいだけなので、変数はPrice(価格)とLotSize(土地面積)に絞って見ていきます。

回帰する前に、プロットも試しておきます。

まずは散布図。

x=data[:, :LotSize]

y=data[:, :Price]

plot()

scatter!(x, y)

f:id:d_s:20181011002849p:plain

 続いて、Priceについてヒストグラムを描いてみます。

PyPlot.plt[:hist](y)

 

f:id:d_s:20181011003035p:plain

回帰するにはちょっと前処理したい分布ですが、どんどん進みます。

 

回帰を実行します。

# 回帰

mod_lm = lm(@formula(Price ~ LotSize), data)

 

f:id:d_s:20181011003506p:plain

 

感想

ざっと触ってみた結果、導入部分としては入りやすそうな印象を受けました。

実際はもっと奥が深くJuliaの本領を発揮させる領域(コードの書き方)があると思いますが、Jupyterでさくさく実行できる点が敷居を下げている気がします。

これから発展していく言語だと思いますので、注目していこうと思います。