K-meansやその他の関連アルゴリズムでは、クラスタリングはポイント間の距離の計算に基づいているようです。それなしで動作するものはありますか?
K-meansやその他の関連アルゴリズムでは、クラスタリングはポイント間の距離の計算に基づいているようです。それなしで動作するものはありますか?
回答:
そのような方法の1つの例は、クラスタリングに使用される有限混合モデル(たとえばhereまたはhere)です。FMMでは、ディストリビューション(考えるあなたの変数の)Xを混合してKの分布(F 1、。。。、F K):
ここで、パラメータのベクトルであるθ = (π '、θ ' 1、。。。、θ ' K)'とπ kはの割合であるK「混合物で番目分布θ kは、パラメータ(またはパラメータ)でありますF k個の分布。
離散データの特定のケースは、次のように定義される潜在クラス分析(たとえば、ここ)です。
ここで、潜在クラス観察する確率であり、K(すなわち、π kは)、Pは(xは)観察する確率であるXの値とP (Xは| K )の確率であり、XクラスにあるK。
通常、FMMとLCAの両方でEMアルゴリズムが推定に使用されますが、ベイジアンアプローチも可能ですが、モデルの識別やラベルの切り替えなどの問題のためにもう少し要求が厳しくなります(Xi'anのブログなど)。
そのため、距離の尺度はなく、データの構造(分布)を定義する統計モデルがあります。そのため、このメソッドの他の名前は「モデルベースのクラスタリング」です。
FMMに関する2冊の本を確認してください。
FMMを使用する最も一般的なクラスタリングパッケージの1つは、Rで実装されていますmclust
(こちらまたはこちらをご覧ください)。ただし、より複雑なFMMも可能です。たとえば、パッケージとそのドキュメントを確認してください。LCAには、R poLCAパッケージがあります。flexmix
K-meansは「実際の」距離ベースではありません。分散を最小化します。(ただし、分散ユークリッド距離の2乗。したがって、すべてのポイントは、ユークリッド距離によっても最も近い重心に割り当てられます)。
グリッドベースのクラスタリングアプローチがたくさんあります。距離を計算しないのは、それによって2次ランタイムが生成されることが多いためです。代わりに、データを分割し、グリッドセルに集約します。しかし、そのようなアプローチの背後にある直感は通常、距離と非常に密接に関連しています。
COOLCATやSTUCCOなどのカテゴリデータには、多数のクラスタリングアルゴリズムがあります。このようなデータでは距離を使用するのは簡単ではありません(ワンホットエンコーディングはハックであり、特に意味のある距離は得られません)。しかし、これらのアルゴリズムを使用している人はいません。
グラフにはクラスタリングのアプローチがあります。ただし、クリークまたはニアクリークの検出やグラフの色付けなどの古典的なグラフの問題に縮小するか、距離ベースのクラスタリングに密接に関連しています(重み付きグラフがある場合)。
DBSCANのような密度ベースのクラスタリングには別の名前があり、距離の最小化に焦点を合わせていません。ただし、「密度」は通常、距離に関して指定されるため、技術的にはこれらのアルゴリズムは距離ベースまたはグリッドベースのいずれかです。
あなたが省略したあなたの質問の重要な部分はあなたのデータは何ですか?
以前の良い回答に加えて、ディリクレ混合モデルとベイジアンベースの階層ディリクレ過程モデルを検討することをお勧めします。クラスターの最適な数を決定するためのアプローチと方法のかなり包括的で一般的な概要については、StackOverflowでこの優れた回答を参照してください:https : //stackoverflow.com/a/15376462/2872891。
純粋に差別的なアプローチは、Gomes et alによる「正規化された情報の最大化」です。それに関係する類似性/距離の概念はまったくありません。
考え方は、ポイントをビンに入れるモデルのようなロジスティック回帰を行うことです。ただし、クラスラベルの対数尤度の形式を最大化するようにトレーニングする代わりに、目的関数はポイントを異なるクラスターに入れるものです。
非線形クラスタリングのカーネルメソッドまたはニューラルネットワークへの拡張は簡単です。