はじめに Uniform manifold approximation and projection (UMAP) はt-SNEとならんでよく使われる次元圧縮による可視化手法です。 Ruby言語で、機械学習を実行する場合、Rumaleというgemを使うケースが多いと思います。Rumaleにはt-SNEが搭載されていますが、UMAPは搭載されていません。 今回、C++のライブラリであるUmapppのRubyバインディングを作成したので忘れないうちに記録します。 Rubyのライブラリがないときはバインディングを作ろう Ruby言語は、データ解析の分野では比較的マイナーな言語なので、やりたいことを実装したライブラリーが存在しないことがよくあります。そんな時はC言語やRust言語などのライブラリを探してRubyバインディングを作る方法があります。 GitHubの検索では、言語を指定してコードを検索