OP の 2 つの質問は別々のトピックです (つまり、回答に重複はありません)。そのため、リストの項目 1 から順番に 1 つずつ回答していきます。
[クラスタリング] アルゴリズムが正しく機能しているかどうかを判断するにはどうすればよいですか?
k-means は、他の教師なし ML 手法と同様に、「k-means によって返されるクラスター割り当ては、k=3 または k=5 の場合により意味がありますか?」などの質問に答える診断テストの適切な選択がありません。
それでも、直感的な結果が得られ、簡単に適用できる、広く受け入れられているテストが 1 つあります。この診断指標は、まさにこの比率です。
重心間分離 /クラスター内分散
この比率の値が増加すると、クラスタリング結果の品質が向上します。
これは直感的です。これらのメトリクスの最初のものは、各クラスターが他のクラスターからどれだけ離れているかです (クラスターの中心に従って測定)。
しかし、重心間分離だけでは全体像がわかりません。なぜなら、2 つのクラスタリング アルゴリズムが同じ重心間分離を持つ結果を返す可能性があるからです。つまり、クラスターのエッジはより分離されています。2 番目のメトリックであるクラスター内分散は、これを説明します。これは、クラスターごとに計算された単なる平均分散です。
要約すると、クラスタ内分散に対する重心間分離の比率は、異なるクラスタリング アルゴリズムからの結果を比較するため、または異なる変数パラメータの下で実行された同じアルゴリズムからの結果を比較するための、迅速で一貫性のある信頼性の高い手法です。反復回数、距離メトリックの選択、重心の数 (k の値)。
望ましい結果は、密集した (小さな) クラスターであり、それぞれが他のクラスターから離れています。
計算は簡単です。
重心間分離の場合:
クラスター内分散の場合:
それが最初の質問に対する私の答えです。2 番目の質問は次のとおりです。
ユークリッド距離は距離を計算するための正しい方法ですか? 次元が 30 ではなく 100 の場合はどうなりますか?
まず、簡単な質問です。ユークリッド距離は、次元/機能が増加するにつれて有効なメトリックですか?
ユークリッド距離は完全にスケーラブルです。2 次元または 2000 次元で機能します。データポイントの任意のペアについて:
それらの特徴ベクトルを要素ごとに減算し、
その結果ベクトルの各項目を二乗し、
その結果を合計し、
そのスカラーの平方根を取ります。
この一連の計算のどこにもスケールが関係していません。
ただし、ユークリッド距離が問題の適切な類似度メトリックであるかどうかは、データによって異なります。たとえば、純粋に数値 (連続) ですか? または、個別の (カテゴリ) 変数も含まれていますか (たとえば、性別? M/F) ディメンションの 1 つが「現在の場所」で、200 人のユーザーのうち 100 人の値が「サンフランシスコ」で、他の 100 人の値が「」の場合ボストン"、平均して、ユーザーがカンザス州のどこかから来ているとは言えませんが、それはユークリッド距離が行うことのようなものです.
いずれにせよ、私たちはそれについて何も知らないので、データに適用して適切な類似性メトリックを特定できるように、簡単なフロー図を示します。
与えられたデータから適切な類似性指標を特定するには:
