scikit-learn
PythonモジュールのDBSCANアルゴリズムで画像セットをテストします。類似性計算の代替手段があります。
# Compute similarities
D = distance.squareform(distance.pdist(X))
S = 1 - (D / np.max(D))
加重メジャーまたは私が試すことができるようなもの、例?
scikit-learn
PythonモジュールのDBSCANアルゴリズムで画像セットをテストします。類似性計算の代替手段があります。
# Compute similarities
D = distance.squareform(distance.pdist(X))
S = 1 - (D / np.max(D))
加重メジャーまたは私が試すことができるようなもの、例?
「GeneralizedDBSCAN」として知られるDBSCANの一般化が存在します。
実際、DBSCANの場合、距離さえ必要ありません。そもそも類似性行列を計算することは実際には意味がないのはそのためです。
必要なのは、ネイバーと見なすオブジェクトを計算する述語「getNeighbors」だけです。
参照:DBSCANでは、オブジェクトが隣接オブジェクトであるかどうかをテストする場合を除いて、距離は実際には使用されません。したがって、必要なのはこのブール値の決定だけです。
次のアプローチを試すことができます。すべて1で行列を初期化します。アプリケーションで類似していると思われる2つのオブジェクト(アプリケーションとデータがわからないと、多くのことを支援することはできません)について、対応するセルに0を入力します。次に、epsilon = 0.5でDBSCANを実行すると、明らかにDBSCANが実行されます。すべての0をネイバーと見なします。
好きな類似度マトリックスを使用できます。有効な距離 (対称、半正定値) に基づいている必要があります。
DBSCAN estimator は類似性ではなく距離を求めていると思います。しかし、文字列に関しては、類似度マトリックスが必要になります。これは、2 つの文字列間の同等性を照合するためのコード行でさえあります。したがって、類似度マトリックスをどのように使用し、隣接オブジェクトと非隣接オブジェクトを区別するかは、あなた次第です。