クラスタリングまたはクラスター分析は、機械学習やデータ解析で使用される教師なし学習手法で、同じグループ (またはクラスター) 内のデータポイント同士が、他のグループ内のものに比べて、高い類似性を示すようデータを整理します。クラスタリングは、大規模で複雑なデータ群の中に埋もれたパターンやトレンドを見つけ出し、ラベル付けされていないデータに対して予測を行うことで、データの意味を理解できるようにします。
クラスタリングの仕組み
クラスタリングには、データの準備、類似度測定の定義、適切なクラスタリング アルゴリズムの選択、クラスターの評価や調整など、いくつかの重要な手順が含まれます。

クラスタリングの主な手順。
クラスタリングは、データポイント間の類似度を測定し、他のクラスターのデータよりも類似性の高いポイントをグループ化することで機能します。この「類似性」の概念は、コンテキストやデータによって異なり、教師なし学習における基本的な要素となっています。使用できる類似度の指標はさまざまで、ユークリッド、確率、余弦距離、相関などがあります。

spectralcluster
関数を用いて 3 つのクラスターにグループ化したデータの散布図。(MATLAB コードを参照)
クラスタリング アルゴリズムの種類
クラスタリング アルゴリズムは、次の 2 つのグループに大きく分けられます。
- ハードクラスタリング: 各データポイントが 1 つのクラスターのみに属する場合 (よく利用される k-means 法など)
- ソフトクラスタリング: 各データポイントが複数のクラスターに属する場合 (混合ガウスモデルなど)

k-means クラスタリングは、各グループをその重心 (メンバーの平均) で示し、星形で表現します。

クラスター メンバーシップの確率を割り当てる混合ガウスモデル。異なるクラスターとの関連強度を表しています。
クラスタリング アルゴリズムにはいくつかの種類があり、それぞれ独自のアプローチでデータをグループ化します。これらの手法は、仕組みや理想的なユースケースの点で大きな違いがあります。機械学習で使用される最も一般的なクラスタリング アルゴリズムの種類は、次のとおりです。
- 階層クラスタリングは、クラスターツリーを作成することにより、クラスターの多重レベルの階層を構築します。
- k-means クラスタリングは、クラスターの重心までの距離に基づいて、データを k 個の異なるクラスターに分割します。
- 混合ガウスモデルは、多変量正規密度成分の混合としてクラスターを形成します。
- Density-based spatial clustering (DBSCAN) は、密度の高い領域の互いに近接したデータポイントをグループ化し、密度の低い領域の外れ値を追跡します。この手法では、任意の非凸形状を扱うことができます。
- 自己組織化マップは、データのトポロジと分布を学習するニューラル ネットワークを使用します。
- スペクトル クラスタリングは、入力データをグラフベースの表現に変換し、元の特徴空間よりもクラスターがより明確に分離されるようにします。クラスター数はグラフの固有値を学習することで推定できます。
- 隠れマルコフモデルは、バイオインフォマティクスにおける遺伝子やタンパク質など、シーケンス内のパターンを発見するために使用できます。
- Fuzzy c-means (FCM) はデータを N 個のクラスターにグループ化し、データセット内のすべてのデータポイントが、ある程度すべてのクラスターに属しているようにします。
教師なし学習におけるクラスタリング
教師なし学習は、ラベル付けされていないデータから、人間の介入なしに推論を導き出すために使用される機械学習アルゴリズムの一種です。クラスタリングは、最も一般的な教師なし学習の手法です。クラスタリング アルゴリズムを適用することで、グループラベルに関する事前情報がなくても、データ内を分析して隠れたパターンやグループを見つけだすことができます。このグループやパターンを利用して、ラベル付けされていないデータから役立つ情報を引き出し、内在する構造を明らかにします。

クラスタリングを使用した画像セグメンテーション。床のパターン化された背景を分離します。
クラスタリングが重要な理由
クラスタリングは人工知能 (AI) の重要な領域です。データに関する貴重なインサイトを提供し、埋もれて目に見えないパターンや関係を明らかにすることで、さまざまな分野で重要な役割を果たしています。ラベル付けされていないデータの場合、データポイント間に内在する関係が隠されており、そこから役立つ情報を引き出す必要があります。クラスタリングはそれらの関係を導き出し、ラベル付けされていないデータを意味のあるグループに整理することができます。
クラスタリングは、異常検知、画像セグメンテーション、パターン認識などのアプリケーションでもよく利用されています。具体的には、次の領域でパターンやシーケンスを特定するために活用されています。
- データ圧縮手法では、生の信号データの代わりにクラスターを使ってデータを表現することができます。
- クラスターは、セグメンテーション アルゴリズムにおける画像や LiDAR 点群の領域を示します。
- クラスタリングは、データセット内の外れ値や異常値の特定に役立ちます。
- 医用画像処理では、クラスタリング アルゴリズムを使用して、画像を関心領域に分割できます。たとえば、健康な組織と腫瘍を判別したり、脳を白質、灰白質、脳脊髄液にセグメント化したりします。
- 地理情報システム (GIS) では、衛星画像や航空写真を解析して都市のスプロール現象や土地の利用パターンを識別したり、都市部の経年変化を監視したりするためにクラスタリングが利用されます。
- 遺伝子のクラスタリングや配列解析は、バイオインフォマティクスで使用されます。

左: ヘマトキシリンとエオジンで染色された組織の元の画像。右: MATLAB は画像に 3 つのクラスターを割り当て、組織を 3 つのクラスにセグメント化しました。
MATLAB を使用したクラスタリング
MATLAB® と Statistics and Machine Learning Toolbox™ を使用すると、選択したクラスタリング手法を適用してデータをグループやクラスターに分割することでパターンや特徴を識別できます。Image Processing Toolbox™ では、画像データ上でクラスタリングを実行できます。
データの準備
正確で効率的なクラスタリング結果を得るには、データを前処理し、欠損値や外れ値を処理することが重要です。データのクリーニングと前処理は、組み込み関数を使用してプログラムで処理するか、データ クリーナー アプリで対話的に実行できます。
クラスタリング アルゴリズム
KNN Search ブロックを使用して、Simulink で最近傍クラスタリングを実行することもできます。このブロックはクエリ点を受け入れ、最近傍探索オブジェクトを用いて観測データ内の k 個の最近傍点を返します。

左: 3 種のアヤメのいくつかの標本から得られた花弁の測定値の MATLAB 散布図。右: 混合ガウスモデル (GMM) クラスタリング手法を使用して 3 つのクラスターにセグメント化された花弁の測定値。(Statistics and Machine Learning の例を参照)
クラスタリング結果の可視化と評価

シルエット
関数を使用して作成された MATLAB プロットは、データが同じ大きさの 2 つのクラスターに分割されていることを示します。(MATLAB コードを参照)
画像のクラスタリング
色や形の類似度に基づいてピクセルの領域をクラスタリングすることで、画像のセグメンテーション (imsegkmeans
関数を使用) やボリュームのセグメンテーション (imsegkmeans3
関数を使用) を実行できます。特定のクラスタリング アルゴリズムを用いてセグメント化されたラベル付き画像を作成できます。たとえば、医用画像では、患者の脳や他の臓器の腫瘍を表す画像内のピクセルや 3D ボリュームのボクセルを検出してラベル付けできます。MATLAB ツールを活用することで、病気の診断から土地利用の分類に至るまで、幅広い用途で画像を処理して解析できます。

MATLAB で Fuzzy c-means クラスタリングを用いた MR 画像からの脳腫瘍検出。(Fuzzy Logic Toolbox の例を参照)
リソース
ドキュメンテーション、例、ビデオなどを通じて知識を広げましょう。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)