taki["blog"] = 2020 (R2)

社会人5年目(東京2年目)の日常

統計的機械学習の数理100問 with PythonをJuliaで書いてます

memo: 現在5章までpushしてあります

統計的機械学習の数理100問 with Pythonという本が発売になっています.R版もありますが,Rはそこまで読めないのでPython版が手元にあります.

せっかくなのでJuliaで書いてみようと思い,最近コツコツ書いています(進みはよくないですが…).Python版のコードは著者の鈴木先生が公開されています.しいて問題点を挙げるならば,ノートブックベースで書かれているので変数名の被りや微妙な設定などがいくつかあります(Amazonのレビューでも言われていますが).それはさておき,Juliaで行列演算などを駆使して書いています.

例えば最初の線形回帰の例だと次のように書いています.

function min_sq(x, y)
    xbar = mean(x)
    ybar = mean(y)
    β1 = dot(x .- xbar, y .- ybar) ./ norm(x .- xbar) .^ 2
    β0 = ybar .- β1 .* xbar
    (β1, β0)
end

グラフの描画はPyPlots.jlを使えばだいぶほんと同じ感じで出来る気もしたのですが,普段慣れているPlots.jl (w/ GR)で書いています.Plots.jlのグラフは次のような感じになります.

f:id:takilog:20200503110148p:plain

notebook

  • 1章分です

  • 2章分です (一部未実装です)

  • 3章分です

  • 4章分です

  • 5章分です