Rustで機械学習

Posted on November 14, 2017 , Tags: Rust, Machine Learning

最近、仕事ではじめる機械学習という本を読んでいる。現場感が伝わるように書いてあって、以前より機械学習に興味が沸いた。
ところで、最近勉強中のRustで機械学習系のライブラリはあるのか、気になったのでちょっと調べた。

Rustで機械学習

調べた感じだと以下のrusty-machineというのが汎用的に使えそうだった。

錆びた機械というネーミングがかっこいい。
READMEを見る限り、以下に対応しているようだ。

  • 線形回帰
  • ロジスティック回帰
  • 一般線形モデル
  • k-meansクラスタリング
  • ニューラルネットワーク
  • ガウス過程回帰
  • サポートベクターマシン(SVM)
  • ナイーブベイズ
  • DBSCAN
  • k近傍法

残念ながら、自分にはまだこれらの手法について正しく解説できる自信がないので、説明は省く。

使ってみる

今回はexampleにあるコードを使って、k-meansクラスタリングとそのプロットまでやった。
プロットするのに、今回は RustGnuplot を使った。プロット系ライブラリは他にも以下のようなものがあるようだ。

まずはexampleのコードをそのままコピペして動かしてみる
参考: k-means_generating_cluster.rs

ちゃんと動く。
次にRustGnuplotを導入する

predictした後、classesの値に従って、samplesを分ける

pngに描画する

すると、以下のような図がプロットできた。

コード全体は こちらのGist に置いた。

まとめ

今回は軽くrusty-machineの例を動かした。図へのプロットも行った。
まだまだ機械学習については知識がないので、これからもう少し高度なことができるようになったらまたブログを書く。