洋食の日記

「だ・である」調ではなく「です・ます」調で書きはじめれば良かったなと後悔してる人のブログです

近傍探索

近似最近傍探索ライブラリHnswlibのNode.js bindingを作っていた

はじめに Hnswlibは、近似最近棒探索のベンチマークでも上位に位置する、Hierarchical Navigable Small World graphsによるC++の近似最近傍探索ライブラリである。Node.jsのbindingがなかったので、腱鞘炎のリハビリとnpm作成の勉強がてら作成していた。ずっ…

近似最近傍探索ライブラリHnswlibのRuby bindingを作った

はじめに Hnswlibは、C++で書かれたHierarchical Navigable Small World graphsによる近似最近傍探索ライブラリである。近似最近棒探索のベンチマークでも上位に登場する。Ruby bindingがなかったので作成した。 hnswlib | RubyGems.org | your community ge…

近似最近傍探索ライブラリAnnoyのRuby bindingを作成した

はじめに Annoy (Approximate Nearest Neighbors Oh Yeah) は、C++で書かれた近似最近傍探索ライブラリである。近似最近傍探索とは、その名のとおり、クエリに対して厳密ではなく近似的に近傍にあるものを探索する。高速に探索できるので、大規模データの画…

Rubyで近似最近傍探索ライブラリを作った話

はじめに Rubyで動く近似最近傍探索(Approximate Nearest Neighbor search, ANN)ライブラリが欲しくなって作成した。 hanny | RubyGems.org | your community gem host FLANNのRubyバインディングがあり検討したが、FLANN自体の開発が止まっているので、勉…

scikit-learnで近似最近傍探索したいときはLSHForestがある

2017/8/13追記: LSHForestはパフォーマンスがよろしくないため、0.19からDEPRECATEDとなった。0.21から削除されるようなので、使用しないほうが良い。 scikit-learnでは、ver. 0.16から近似最近傍探索手法のLSHForestが実装されている。LSHForestは、ハッシ…

Pythonで近似最近傍探索を試したいときはpyflannがちょうど良い

近似最近傍探索とは近似的に近いものを検索してくる技術で、普通に距離を計算して並べて近くにあるものを探すより速い。代表的なライブラリにFLANN(Fast Library for Approximate Nearest Neighbors)があり、これのPythonバインディングがpyflannになる。F…