3

教師なし次元削減アルゴリズムは、行列 NxC1 を入力として取ります。ここで、N は入力ベクトルの数、C1 は各ベクトルのコンポーネントの数 (ベクトルの次元) です。その結果、新しい行列 NxC2 (C2 < C1) が返されます。ここで、各ベクトルのコンポーネント数は少なくなります。

ファジー クラスタリング アルゴリズムは、行列 N*C1 を入力として受け取ります。ここで、ここでも、N は入力ベクトルの数であり、C1 は各ベクトルのコンポーネントの数です。その結果、新しい行列 NxC2 (通常、C2 は C1 よりも小さい) が返されます。ここで、各ベクトルの各コンポーネントは、ベクトルが対応するクラスターに属する度合いを示しています。

両方のクラスのアルゴリズムの入力と出力の構造は同じで、結果の解釈のみが異なることに気付きました。さらに、scikit-learn にはファジー クラスタリングの実装がないため、次の質問があります。

ファジークラスタリングを実行するために次元削減アルゴリズムを使用することは理にかなっていますか? たとえば、テキスト データから抽出された TF-IDF ベクトルから構築されたデータセットにFeatureAgglomerationまたはTruncatedSVDを適用し、その結果をファジー クラスタリングとして解釈するのはナンセンスですか?

4

1 に答える 1

3

ある意味、確かに。結果を下流でどのように使用するかによって異なります。

SVD 切り捨てまたは主成分の除外を検討してください。新しい多様体の構造に本質的に他の制限がほとんどない、新しい分散保存空間に射影しました。元のデータ ポイントの新しい座標表現は、一部の要素に対して大きな負の数を持つ可能性があり、これは少し奇妙です。しかし、それほど困難なく、データをシフトして再スケーリングすることができます。

次に、各次元をクラスター メンバーシップの重みとして解釈できます。ただし、ファジー クラスタリングの一般的な用途を考えてみましょう。これは、ハード クラスタリングを生成することです。ファジー クラスタの重みを使用すると、これがいかに簡単であるかに注意してください (たとえば、最大値を取得するだけです)。<0,0,1>、<0,1,0>、<0,100,101>、<5,100,99> など、新しい次元削減空間内の点のセットを考えてみましょう。ファジー クラスタリングでは、しきい値を設定すると {p1,p2}、{p3,p4} のような値が得られますが、ここで最大値を取得すると (つまり、次元を削減した軸をメンバーシップとして扱うと、{p1,p3}、{p2,p4 が得られます) }, たとえば、k=2 の場合. もちろん、ハード メンバーシップを導出するために max よりも優れたアルゴリズムを使用することもできます (たとえば、ペアごとの距離を調べることで、これは私の例で機能します); そのようなアルゴリズムは、クラスタリング アルゴリズムと呼ばれます。 .

もちろん、さまざまな次元削減アルゴリズムがこれに対して良くも悪くも機能する可能性があります (たとえば、分散ではなくデータ ポイント間の距離を維持することに重点を置いている MDS は、より自然にクラスターに似ています)。しかし、基本的に、多くの次元削減アルゴリズムは、データが存在する基になる多様体に関するデータを暗黙的に保存しますが、ファジー クラスター ベクトルは、データ ポイント間の関係に関する情報のみを保持します (他の情報を暗黙的にエンコードする場合とエンコードしない場合があります)。

全体として、目的は少し異なります。クラスタリングは、類似したデータのグループを見つけるように設計されています。特徴選択と次元削減は、埋め込み空間を変更することでデータのノイズや冗長性を減らすように設計されています。多くの場合、前者を助けるために後者を使用します。

于 2016-08-18T17:17:42.063 に答える