クラスタ数を指定する必要のない「ノンパラメトリック」クラスタリング方法はありますか?また、クラスターごとのポイント数などのその他のパラメーター
クラスタ数を指定する必要のない「ノンパラメトリック」クラスタリング方法はありますか?また、クラスターごとのポイント数などのその他のパラメーター
回答:
クラスターの数を事前に指定する必要があるクラスタリングアルゴリズムは少数です。膨大な数のアルゴリズムがあります。要約するのは難しいです。猫ではない生物の説明を求めるようなものです。
クラスタリングアルゴリズムは、多くの場合、広範な王国に分類されます。
追加のカテゴリが存在する可能性があり、これらのカテゴリおよびどのアルゴリズムがどのカテゴリに入るのかは、ヒューリスティックであるため、人々は反対することができます。それにもかかわらず、このスキームのようなものが一般的です。このことから、主にパーティション分割方法(1)のみが、検索するクラスター数の事前指定を必要とします。他の情報を事前に指定する必要があるもの(クラスターごとのポイント数など)、およびさまざまなアルゴリズムを「ノンパラメトリック」と呼ぶのが妥当と思われるかどうかは、同様に非常に可変で要約が困難です。
階層的クラスタリングでは、k-meansのようにクラスターの数を事前に指定する必要はありませんが、出力からいくつかのクラスターを選択します。一方、DBSCANはどちらも必要としません(ただし、「近隣」の最小数のポイントを指定する必要があります-デフォルトがありますが、ある意味では指定を省略できます)。クラスター内のパターンの数)。GMMでは、これら3つのいずれも必要としませんが、データ生成プロセスに関するパラメトリックな仮定が必要です。私の知る限り、クラスターの数、クラスターごとの最小データ数、またはクラスター内のデータのパターン/配置を指定する必要のないクラスタリングアルゴリズムはありません。どうなるかわかりません。
さまざまなタイプのクラスタリングアルゴリズムの概要を読むのに役立つ場合があります。開始する場所は次のとおりです。
Mclust
使用するのはBICを最適化するように設計されていますが、AICを使用することも、一連の尤度比テストを使用することもできます。私はそれをメタアルゴリズムと呼ぶことができると思います、b / cは構成ステップ(例えば、EM)を持っていますが、それはあなたが使用するアルゴリズムです、とにかくkを事前に指定する必要はありません リンクされた例では、そこでkを事前に指定しなかったことがはっきりとわかります。
最も単純な例は階層クラスタリングです。ここでは、距離測定を使用して各ポイントを他のポイントと比較し、最小距離を持つペアを結合して結合疑似ポイントを作成します(たとえば、bとcは画像のようにbcになります)未満)。次に、各ポイントがグラフに結合されるまで、ペアワイズ距離に基づいてポイントと疑似ポイントを結合することにより、手順を繰り返します。
(ソース:https : //en.wikipedia.org/wiki/Hierarchical_clustering)
手順はノンパラメトリックであり、必要なのは距離の測定だけです。最後に、この手順を使用して作成されたツリーグラフをプルーニングする方法を決定する必要があります。そのため、予想されるクラスター数について決定する必要があります。
「パラメータなし」の方法とは、カスタマイズの可能性がなく、シングルショット(ランダム性を除く)のみを取得することを意味します。
現在、クラスタリングは探索的な手法です。単一の「真の」クラスタリングがあると想定してはなりません。むしろ、同じデータの異なるクラスタリングを調べて、それについてさらに学習することに興味があるはずです。クラスタリングをブラックボックスとして扱うことは、決してうまくいきません。
たとえば、データに応じて使用する距離関数をカスタマイズできるようにしたい(これもパラメーターです!)結果が粗すぎる場合、より細かい結果を取得できるようにするか、細かすぎる場合、より粗いバージョンを入手してください。
多くの場合、最良の方法は、階層クラスタリングの樹状図など、結果をうまくナビゲートできる方法です。これで、下部構造を簡単に探索できます。
ディリクレ混合モデルをご覧ください。クラスターの数が事前にわからない場合は、データの意味を理解する良い方法を提供します。ただし、データが違反する可能性のあるクラスターの形状については想定しています。