私は(n_sample x 2)の配列を持ち、sklearn.neighbors.KDTreeのKDTreeを使ってクラスタリングしたいと思います。Clusterint 2Dポイントはsklearn KDTreeを使用しています
私はこのコードのサンプル片を持っている:
from sklearn.neighbors import KDTree
import numpy as np
np.random.seed(0)
X = np.random.random((10, 2))
tree = KDTree(X, leaf_size=2)
は今、私は、各リーフは、クラスタになるように、ツリーの葉でポイントを抽出したいです。同じリーフにあるポイントは、同じクラスタに属します。
上記の例では、最大のleaf_sizeが2であるため、約10/2 = 5のクラスタを使用します。
私が望むのは、Xのポイント(X [0]など)が与えられれば、そのポイントが属するツリーのリーフのインデックスをツリーに与えることができるということです。
kdツリーはクラスタリングにはあまり適していません。 –
私の場合ではありませんが、KDツリーは、必要なクラスタリングのタイプに適しています。このペーパーhttp://aclweb.org/anthology/P15-2104に記載されています。 – Ash
私はそれに "クラスタリング"という用語を使用しません。これは適応グリッドです。リーフ以外のユーザーが何をしているかは言及していません。メジアン分割だけでkdツリーなしでこれを表現し実装するのは簡単です。 –