クラスタリング結果の妥当性を評価すること、つまりクラスタリング評価または検証は、クラスタリング アプリケーションの成功に不可欠です。これにより、クラスタリング アルゴリズムがデータ内の意味のあるクラスターを識別できるようになります。また、特定のデータセットとタスクに最適なクラスタリング アルゴリズムを決定したり、それらのアルゴリズムのハイパーパラメータ (k-means のクラスター数や DBSCAN の密度パラメータなど) を調整したりするためにも使用できます。 教師あり学習手法には、精度、適合率、再現率などの明確なパフォーマンス指標がありますが、クラスタリング アルゴリズムの評価はより困難です。 クラスタリングは教師なし学習方法であるため、クラスタリング結果を比較するためのグラウンドトゥルースラベルはありません。 クラスターの「適切な」数、または「最適な」数を決定することは、ドメインの専門家にとっても主観的な判断となることがよくあります。ある人が意味のあるクラスターと考えるものを、別の人は偶然と考えるかもしれません。 多くの現実世界のデータセットでは、クラスター間の境界は明確ではありません。一部のデータ ポイントは 2 つのクラスターの境界に位置し、両方のクラスターに合理的に割り当てることができます。 アプリケーションによって、クラスタリングの優先順位が異なる場合があります。たとえば、あるアプリケーションでは、密に分離されたクラスターが必要になる場合がありますが、別のアプリケーションでは、全体的なデータ構造をキャプチャすることがより重要になる場合があります。 これらの課題を考慮すると、クラスタリング パフォーマンスを評価するには、評価メトリック、目視検査、ドメインの専門知識を組み合わせて使用することが推奨されることが多いです。 一般的に、クラスタリング評価メトリック (または測定基準) には 2 種類あります。 内部: クラスターの品質を評価するためにグラウンドトゥルースは必要ありません。これらはすべてデータとクラスタリング結果に基づいています。 外部: クラスタリング結果を実際の値ラベルと比較します。 (真の値ラベルはデータ内にないため、外部から導入する必要があります) 通常、実際のアプリケーションでは、グラウンドトゥルースラベルなどの外部情報は利用できないため、クラスター検証には内部メトリックが唯一の実行可能な選択肢となります。 この記事では、クラスタリング アルゴリズムのさまざまな評価メトリック、それらを使用するタイミング、および Scikit-Learn を使用してそれらを計算する方法について説明します。 内部指標クラスタリングの目的は、同じクラスター内のオブジェクトを類似させ、異なるクラスター内のオブジェクトを異なるものにすることであるため、ほとんどの内部検証は次の 2 つの基準に基づいています。 コンパクトネスの尺度: オブジェクトがどれだけ密集しているか。コンパクトさは、各クラスター内のポイントの分散を使用するか、クラスター間の平均ペアワイズ距離を計算するなど、さまざまな方法で測定できます。 分離度: あるクラスターが他のクラスターからどれだけ異なるか、または分離されているか。分離メトリックの例には、クラスター中心間のペアワイズ距離や、異なるクラスター内のオブジェクト間のペアワイズ最小距離などがあります。 最も一般的に使用される 3 つの内部測定方法について説明し、それぞれの長所と短所について説明します。 1. シルエット係数シルエット係数(またはスコア)は、各オブジェクトの自身のクラスターとの類似性と他のクラスター内のオブジェクトとの類似性を比較することによって、クラスター間の分離を測定します[1]。 まず、データポイント x のシルエット係数を次のように定義します。 ここで、A(x′)はx′からクラスター内の他のすべてのデータポイントまでの平均距離です。言い換えれば、点x∈がクラスターC∈に属する場合、 ここで、d(x, xⱼ)は点xと点xⱼの間の距離です。 a(x^e) は、点 x^e がそのクラスターにどの程度一致しているかを示す尺度として解釈できます (値が小さいほど、一致度が高くなります)。サイズ1のクラスターの場合、a(x′f)は明確に定義されないため、s(x′f) = 0に設定します。 B (x′) は、x′ と隣接するクラスター内の点との平均距離、つまり点から x′ までの平均距離が最小のクラスターです。 シルエット係数の範囲は -1 から +1 で、値が高いほど、ポイントが自身のクラスターとより一致し、隣接するクラスターとより一致しなくなります。 サンプルのシルエット係数に基づいて、シルエット インデックス (SI) をすべてのデータ ポイントの係数の平均として定義します。 ここで n はデータ ポイントの合計数です。 シルエット係数は、クラスタリング品質の全体的な尺度を提供します。 1 に近いほどコンパクトで分離が良好であることを意味します。 0 に近い場合は重複を示します。 -1 に近い値は、クラスターが多すぎるか少なすぎることを示します。 sklearn のメトリックは、多くのクラスタリング評価メトリックを提供します。これらのメトリックの使用方法を示すために、合成データセットを作成し、さまざまな k 値を使用して k-means クラスタリングを適用します。次に、評価メトリックを使用してこれらのクラスタリングの結果を比較します。 まず、make_blobs() 関数を使用して 3 つの正規分布クラスターから 500 個のポイントをランダムに選択してデータセットを生成し、次にそれを正規化して特徴が同じスケールになるようにします。 データセットをプロットしてみましょう: 次に、k = 2、3、4 で k-means クラスタリングを実行し、クラスタリング結果を 3 つの異なる変数に保存します。 これで、関数 sklearn.metrics.silhouette_score() を使用して、シルエットごとのスコアを計算できるようになりました。 結果は次のとおりです。 k = 3 の場合、スコアが最も高く、1 より低いことがわかります。これは、クラスターが完全に分離されていないことを示しています。 各サンプルのシルエット係数を計算するには、関数 sklearn.metrics.silhouette_samples を使用します。これらの係数に基づいてシルエット マップを構築することができ、これによりクラスター内の各オブジェクトの位置を評価する方法が提供されます。このグラフでは、各ポイントのシルエット係数が水平線で表されます (バーが長いほどクラスタリングが優れていることを示します)。バーはクラスターに配置され、グループ化されます。各クラスター セクションの高さは、そのクラスター内のポイントの数を表します。 k = 3 の場合の k 平均法クラスタリング プロファイルは次のとおりです。 k = 4: 2 番目の画像では、クラス 0 とクラス 3 のほとんどのポイントのシルエット スコアが平均スコアよりも低いことがわかります。これは、これらのクラスターがデータセット内の自然なグループ化を表していない可能性があることを示唆しています。 シルエットスコアの長所と短所をまとめてみましょう。 アドバンテージ:
欠点:
2. 分散比基準(Calinski-Harabasz指数)Calinski-Harabasz 指数の本質はクラスター間距離とクラスター内距離の比であり、全体的な計算プロセスは分散計算方法に似ているため、分散比基準とも呼ばれます。 K はクラスターの数、N はデータ ポイントの合計数です。BCSS (クラスター間の二乗和) は、各クラスターの重心 (平均) と全体のデータ重心 (平均) 間のユークリッド距離の二乗の加重和です。 ここで、n'' はクラスター i 内のデータ ポイントの数、c'' はクラスター i の重心 (平均)、c はすべてのデータ ポイントの全体的な重心 (平均) です。 BCSS はクラスター間の分離度を測定します (高いほど優れています)。 WCSS (クラスター内二乗和) は、データ ポイントとそれぞれのクラスター重心間のユークリッド距離の二乗の合計です。 WCSS は、クラスターのコンパクトさまたは凝集度を測定します (小さいほど優れています)。 WCSS (慣性とも呼ばれる) を最小化することが、k-means などの重心ベースのクラスタリングの目標です。 CHI の分子は、k - 1 の自由度で正規化されたクラスター間の分離を表します (k - 1 クラスターの重心を固定すると、すべての重心の加重合計がデータ全体の重心と一致するため、k 番目の重心も決定されます)。 CHI の分母は、自由度 n - k で正規化されたクラスター内の分散を表します (各クラスターの重心を固定すると、各クラスターの自由度が 1 減少します)。 BCSS と WCSS を自由度で分割すると、値を正規化し、異なる数のクラスター間で比較できるようになります。この正規化を行わないと、k の値が高い場合に CH インデックスが人為的に膨らむ可能性があり、インデックス値の増加が本当にクラスタリングが向上したためなのか、単にクラスタ数が増加したためなのかを判断することが難しくなります。 CHI 値が高いほど、データ ポイントがクラスター内よりもクラスター間で分散していることを意味するため、クラスタリングが優れていることを示します。 Scikit-Learn では、関数 sklearn.metrics.calinski_harabasz_score() を使用してこの値を計算できます。 結果は次のとおりです。 k = 3 のとき、CHI スコアは最も高くなり、これは上記のシルエット係数によって得られた結果と同じです。 Calinski-Harabasz 指数の長所と短所は次のとおりです。 アドバンテージ:
欠点:
3. デイビス・ボールディン指数(DB値)デイヴィス・ボールディン指数(DBI)[3]は、各クラスターと最も類似したクラスター間の平均類似度を測定します。類似度は、クラスター内距離(クラスターの中点からクラスターの中心までの距離)とクラスター間距離(クラスターの中心間の距離)の比として定義されます。 S ᵢ は、クラスター i 内のすべての点からクラスター c の重心までの平均距離です ᵢ Sᵢはクラスターの「広がり」または「サイズ」を測定します。 D(cᵢ,cⱼ)はクラスターIとjの重心間の距離です。 比率 (Sᵢ + Sⱼ) / d(cᵢ, cⱼ) は、クラスター i とクラスター j 間の類似度、つまりクラスター間の距離と重なりを表します。両方のクラスターが「大きい」(つまり、内部距離が大きい)場合、分子(つまり、両方のクラスターの拡散の合計)は高くなります。クラスターが互いに近い場合、クラスターの重心間の距離を表す分母は低くなります。したがって、分子と分母の比率が大きい場合、2 つのクラスターが重なったり、分離が不十分になったりする可能性があります。逆に、比率が小さい場合は、クラスターがそのサイズに比べて分離されていることを示します。 各クラスター i について、DB 値によって比率が最大となるクラスター j、つまりクラスター i に最も類似するクラスターが決定されます。最終的な DB 値は、すべてのクラスターにわたるこれらの最悪の類似性の平均です。 したがって、DB 値が低いほど、クラスターがよりコンパクトで適切に分離されていることを示し、0 が最低値となります。 Scikit-Learn では、関数 sklearn.metrics.davies_bouldin_score() を使用してこれを計算できます。 結果は次のとおりです。 k = 3 の場合、DBI スコアは最低になります。 アドバンテージ:
欠点:
その他の内部指標内部クラスタリング評価方法は他にも多数あります。 11の内部メトリクス(上記のものを含む)の詳細な研究と、異なるタイプのデータセットのクラスタリングを検証する際のそれらの有効性については、[2]を参照してください。 外部指標データ ポイントの実際のラベルがわかっている場合は、外部評価メトリックを使用できます。これらのメトリックは、クラスタリング アルゴリズムの結果を実際の値ラベルと比較します。 1. コンティンジェンシーマトリックス分類問題における混同行列と同様に、コンティンジェンシー行列 (または表) は、グラウンド トゥルース ラベルとクラスター ラベル間の関係を表します。 行列の行は真のクラスを表し、列はクラスターを表します。 n∈ⱼで表される行列の各セルには、クラスター j に割り当てられたクラス ラベル i を持つデータ ポイントの数が含まれます。 sklearn.metrics.cluster.contingency_matrix() を通じてコンティンジェンシー マトリックスを構築できます。関数は、グラウンド トゥルース ラベルとクラスター ラベルを引数として評価されます。 結果は次のとおりです。 マトリックス表現では、クラス 0 のデータ ポイント 2 つがクラスター 0 に配置され、1 つのポイントがクラスター 1 に配置されます。クラス 1 の 2 つのデータ ポイントはクラスター 2 に配置され、1 つのデータ ポイントはクラスター 1 に配置されます。 多くの外部評価指標は、コンティンジェンシーマトリックスを計算の基礎として使用します。コンティンジェンシーマトリックスを理解した後、いくつかの外部指標を導入し始めます。 2. 調整ランド指数(ARI)ランド指数(RI)[4]はウィリアム・ランドにちなんで名付けられ、クラスター割り当てと真のクラスラベル間の類似性を一対比較によって測定します。クラスター割り当てとクラスラベル間の一致数とデータポイントペアの合計数の比率を計算します。 A は同じクラス ラベルを持ち、同じクラスターに属するポイント ペアの数であり、B は異なるクラス ラベルを持ち、異なるクラスターに属するポイント ペアの数です。 N はポイントの合計数です。 RI の範囲は 0 ~ 1 で、1 はクラスターの割り当てとクラス ラベルがまったく同じであることを示します。 sklearn.metrics.rand_score() を使用して計算できます。 得る: この例ではa = 2、b = 8なので、 Rand インデックスの問題は、特にクラスターの数が多い場合に、ランダムなクラスター割り当ての場合でも非常に高い値が得られる可能性があることです。これは、クラスターの数が増えると、異なるラベルを持つポイントが異なるクラスターにランダムに割り当てられる確率が高くなるためです。したがって、スコアのうちどれだけが偶然によるもので、どれだけが実際に一貫しているかが不明瞭であるため、特定の RI 値は曖昧になる可能性があります。 ARI は、クラスターをランダムに割り当てるときに予想される RI スコアを考慮して RI スコアを正規化することでこれを修正します。計算式は以下のとおりです。 ここで、E[RI]はランダムクラスタリング割り当てにおけるRand指数の期待値です。この値は、上記の分割表を使用して計算されました。まず、表の各行と列の合計を計算します。 Aᵢはi番目のクラスに属する点の総数である。 Bⱼはクラスターjに割り当てられたポイントの合計数です。 ARI は次の式を使用して計算されます。 分子は、実際のペアワイズRandインデックスと、クラスター割り当てがランダムであった場合のペアワイズマッチの予想数(E[RI])との差を表します。分母は、可能な最大ペアリング数(最大ランド指数)とランダムな状況下での予想されるペアリング数(E[RI])の差を表します。 この値を正規化すると、データセットのサイズとクラスター間の要素の分布が調整されます。 ARI 値の範囲は -1 から 1 で、1 はクラスター割り当てとクラス ラベルが完全に一致していることを示し、0 はランダムに一致していることを示し、負の値は偶然により予想されるよりも一致が低いことを示します。 結果は次のとおりです。 クラスラベルとは独立してクラスターを割り当てると、ARI 値は負または 0 に近くなります。 結果は次のとおりです。 上記で作成したデータセットを使用すると、データ ポイントの実際のラベル (y 変数に格納) が得られるため、外部評価メトリックを使用して、以前に取得した 3 つの k 平均法クラスタリングを評価できます。これらのクラスターの ARI スコアは次のとおりです。 結果は次のとおりです。 k = 3 の場合、完全な ARI スコアが得られます。つまり、この場合、クラスターの割り当てと実際のラベルが完全に一致することになります。 アドバンテージ:
欠点:
3. 均質性、完全性、v 尺度これらの方法は、クラスターの割り当てと実際のクラス ラベルとの一貫性をチェックすることで、クラスタリングの品質を評価します。 均質性は、各クラスターに単一のクラスのメンバーのみが含まれているかどうかを測定します。 定義は次のとおりです。 ここ: C は真のクラス ラベルを表します。 K はアルゴリズムによって割り当てられたクラスター ラベルを表します。 H(C|K)は、クラスター割り当てを与えられたクラス分布の条件付きエントロピーの加重平均です。 ここで、nc,ₖはクラスターkに割り当てられたクラスcのサンプル数、nₖはクラスターk内のサンプル数、nはサンプルの合計数です。 H(C)はクラス分布のエントロピーです。 均質性スコアの範囲は 0 から 1 です。1 は完全な均質性を示します。つまり、各クラスターには 1 つのクラスのメンバーのみが含まれます。 完全性は、特定のクラスのすべてのメンバーが同じクラスターに割り当てられているかどうかを測定します。 定義は次のとおりです。 H(K|C)は、クラスラベルが与えられたクラスター分布の条件付きエントロピーの加重平均です。 ここで、nc はクラス c のサンプル数です。 H(K)はクラスター分布のエントロピーです。 同質性と同様に、完全性の範囲は 0 から 1 までで、1 は完全な完全性、つまり各クラス メンバーが 1 つのクラスターに割り当てられていることを示します。 V 尺度は、均質性と完全性の調和平均であり、クラスタリング パフォーマンスを評価するための単一のスコアを提供します。 V メジャーは調和平均を使用することで、均質性と完全性の間の不均衡をペナルティ化し、より均一なクラスタリング パフォーマンスを促進します。 Scikit-Learnでは、sklearn.metricsのhomogeneity_score、completeness_score、v_measure_score関数を使用して計算できます。 結果は次のとおりです。 これを例に当てはめると次のようになります。 結果は次のとおりです。 k = 3 の場合、完全な V 測定スコア 1.0 が得られます。これは、クラスター ラベルがグラウンド トゥルース ラベルと完全に一致していることを意味します。 アドバンテージ:
欠点:
4. フォークス・マローズ指数(FMI)フォークス・マローズ指数(FMI)[5]は、精度(ポイントペアをグループ化する正確さ)と再現率(正しくグループ化されたペアの完全性)の幾何平均として定義されます。 TP (True Positive) は、同じクラス ラベルを持ち、同じクラスターに属するポイント ペアの数です。 FP (False Positive) は、クラス ラベルは異なるが同じクラスターに割り当てられているポイント ペアの数です。 FN (False Negative) は、同じクラス ラベルを持つが異なるクラスターに割り当てられているポイント ペアの数です。 FMI スコアの範囲は 0 ~ 1 です。0 はクラスタリング結果が実際のラベルと無関係であることを意味し、1 は完全に関連していることを意味します。 Scikit-Learn では、関数 sklearn.metrics.fowlkes_malallows_score() を使用してこのスコアを計算できます。 結果: FMI = 0.471。この例では、TP = 2、FP = 1、FN = 4 なので、次のようになります。 これを例に当てはめると次のようになります。 結果は次のとおりです。 k = 3 の場合、完全な FMI スコアが得られ、これはクラスターの割り当てが真のラベルと完全に一致していることを示します。 アドバンテージ:
欠点:
要約する次の表は、この記事で説明したさまざまなメトリックと機能をまとめたものです。 |
<<: AutoGPTオープンソースAIエージェントを理解する
1. 要件の説明数字の文字列を入力し、その文字列を整数に変換して出力するプログラムを作成します。たと...
ビジネスや社会で AI の利用が広まるにつれ、企業は機械モデルに現れる人間の偏見に注意を払う必要があ...
マルチモーダル対照表現 (MCR) の目標は、異なるモダリティからの入力を意味的に整合された共有空間...
[[403381]]この記事はWeChatの公開アカウント「UP Technology Contro...
OpenAIのCEO、サム・アルトマン氏は昨夜Twitterで、ChatGPTに音声と画像の機能が...
翻訳者 |李睿レビュー | Chonglou近年、機械学習の応用が爆発的に増加しており、堅牢でスケー...
周りを見渡せば、人工知能がいかに重要になっているかがわかるでしょう。顔認識カメラでも音声アシスタント...
知っていましたか?モザイクはもう安全ではありません!こんにちは、友人の皆さん。私は Jiguo.co...
人工知能技術が成熟するにつれ、この技術のより広範な社会的、倫理的影響に十分な注意が払われていないので...
[[249335]] VentureBeatによると、Googleの人工知能研究部門は音声認識におい...
12月9日、清華大学人工知能研究所、北京市知源人工知能研究所、北京市瑞来スマートテクノロジー株式会社...
[[433522]] 1 テンソル刈り込み操作テンソル内の要素を範囲でフィルタリングする勾配クリッ...
英国人映画監督が人工知能(AI)を使って外国映画の鑑賞方法に革命をもたらそうとしている。俳優の顔をデ...