読者です 読者をやめる 読者になる 読者になる

cloverrose's blog

Python, Machine learning, Emacs, CI/CD, Webアプリなど

FLANNでk-means++をやってみた

研究でクラスタリング的なことを使いたくなったので、調べたらk-meansの初期値選択を改善したk-means++が開発されていることを知った。Python kmeans++で検索したらAtsushi TATSUMA Web Page » Python と FLANN でお手軽に近似最近傍探索が引っかかってFLANNというライブラリの存在を知った。

Install

Ubuntu12.04, Python2.7

1. numpy
まずFLANNに渡すデータ構造がnumpyデータなのでnumpyをインストールする。

pip install numpy

2. FLANN
次に、FLANNをインストールする、ソースからビルドすることも可能だが、自分環境だとコンパイルに必要な物が足りていなかったことや、Ubuntu用にビルド済みのものが用意されていたのでそちらを使った。Prebuilt binaries for Linux - Point Cloud Library (PCL)

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

3. pyflann
最後にFLANNをPythonから使うためのラッパーpyflannをインストールする。
Captricity/pyflann · GitHub

pip install -e git+git://github.com/Captricity/pyflann.git#egg=pyflann

(4. matplotlib)
クラスタリングした結果を描画する必要があればmatplotlibなどをインストールする。
自分の場合N次元データだったので使わないのでインストールしなかった。