8

私のデータセットの形式: [x 座標、y 座標、時間] 時間は 0 から 23 までの整数値です。

私の質問は、座標にはユークリッド距離メトリックが必要であるが、時間には別のユークリッド距離メトリックが必要な場合に、このデータをどのようにクラスター化できるかということです (ユークリッド距離メトリックでは d(23,0) は 23 であるため)。scipy の機能ごとに異なる距離メトリックを使用してデータをクラスター化することは可能ですか? どのように?

ありがとうございました

4

1 に答える 1

3

適切な方法で「時間」を処理する独自のメトリックを定義する必要があります。scipy.spatial.distance.pdistのドキュメントでは、独自の関数を定義できます

Y = pdist(X, f)

ユーザー指定の 2 アリティ関数 f を使用して、X 内のすべてのベクトルのペア間の距離を計算します。[...] たとえば、ベクトル間のユークリッド距離は次のように計算できます。

dm = pdist(X, lambda u, v: np.sqrt(((u-v)**2).sum()))

metricメトリクスは、キーワードを介して任意の scipy クラスタリング アルゴリズムに渡すことができます。たとえば、次を使用しlinkageます。

scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean')
于 2013-09-11T16:07:39.473 に答える