セットからの類似アイテムのマッチング


10

アイテムを一致させようとしています。アイテムのセットが与えられた場合、それらが互いにどれだけ類似しているかを0から100までのスケールでランク付けできます。たとえば、アイテムn 1が牛乳でアイテムn 2も牛乳の場合、n 1n 2の類似性は100%になります。n 3がソーダの場合、n 1n 3の間の類似性はおそらく80%などになります。12121

アイテムを類似したアイテムのグループにグループ化する方法を理解しようとしていますが、これは難しい問題です。私は次の問題に遭遇します。馬は牛に似ています。これは山羊に似ています。これは、部分的に山羊チーズに似ています。これは、クラッカーに関連するチーズに似ています。しかし、馬がクラッカーと同じグループになるとは思いません。各項目はペアごとに関連付けられている場合がありますが、最初と最後は関連付けられていない場合があります。

何か案は?


進化生物学では、そのようなペアワイズクラスタリングの結果は系統樹と呼ばれるため、有用な検索用語のセットにそれを追加できます。
hardmath 2012

回答:


7

ここで実行したいのは、N個の観測を同様のプロパティを示すK個のクラスターに分割することです。これはクラスタリングと呼ばれ、詳細についてはこちらをご覧ください。

すでに数値的な類似性測定値があるので、これにより、いくつかのステップで操作するK-Meansアルゴリズムの使用について考えさせられます。

  • クラスターの重心をランダムに初期化する
  • 各観測値を最も近い重心に対応するクラスターに割り当てます。
  • クラスターの要素の新しい平均として重心を更新します。

図心が移動を停止したとき、または特定のしきい値内で収束したかどうかを確認できます。

これにより、各クラスターのアイテムがある程度相関していることが保証され、アルゴリズムのクラスター数(「K」)を増やすことで、クラスターをより細かくすることができます。クラスターの数を見つけることは各問題に依存します。私はあなたの問題についてたくさんの値を試し、グループ化された結果を見て、何が意味をなすかを見るように勧めます。

お役に立てば幸いです。


5

あなたが探しているものは「クラスター分析」または「クラスター化」と呼ばれていると思います。多くの異なるアルゴリズムが存在します。あなたの場合、いくつかの「接続性クラスタリング」、つまり、2つをリンクするプロパティに基づいて要素をグループ化することが必要です。

scikits.learn(Pythonコード)のクラスタリングアルゴリズムとそこで言及されているリファレンスをご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.