データのクラスタリング
説明
[データのクラスタリング] ライブ エディター タスクでは、k-means クラスタリングまたは階層的クラスタリングを対話的に実行できます。このタスクにより、ライブ スクリプト用の MATLAB® コードが生成され、結果として得られるクラスター インデックスが MATLAB ワークスペースに返されます。k-means クラスタリングを実行する場合は、このタスクでクラスター重心位置も返されます。
次が可能です。
クラスターの数を手動で指定する。階層的クラスタリングの場合は、基になる階層クラスター ツリーのカットオフを指定できます。
ギャップ値、シルエット値、Davies-Bouldin インデックス値、Calinski-Harabasz インデックス値などの基準を指定して、データに最適なクラスター数を自動で決定する。
使用する距離計量など、データをクラスタリングするためのパラメーターをカスタマイズする。
クラスタリングされたデータを自動的に可視化する。
ライブ エディター タスクの全般的な情報については、ライブ スクリプトへの対話型タスクの追加を参照してください。
タスクを開く
[データのクラスタリング] タスクをライブ スクリプトに追加するには、次を実行します。
[ライブ エディター] タブで [タスク] 、 [データのクラスタリング] を選択します。
ライブ スクリプトのコード ブロックに、
clustering
、kmeans
、hierarchical
などの関連するキーワードを入力します。推奨されたコマンド補完から、[データのクラスタリング] を選択します。
例
ライブ エディター タスクを使用した k-means クラスタリングのクラスター数の指定
この例では、[データのクラスタリング] タスクを使用して、指定した数のクラスターに k-means クラスタリングを対話的に実行する方法を示します。
標本データを読み込みます。このデータには、3 種のアヤメの花のがく片と花弁からの長さと幅の測定値が含まれています。
load fisheriris
[データのクラスタリング] タスクを開きます。タスクを開くには、まずコード ブロックにキーワード「clustering
」を入力し、推奨されたコマンド補完から [データのクラスタリング] を選択します。
タスクで [k-means クラスタリング] アルゴリズムを選択します。 (R2024a 以降)
2 つのクラスターにデータをクラスター化します。
入力データとして変数
[meas]
を選択します。必要に応じて、クラスター数を
2
に設定します。[ライブ エディター] タブで、 [実行] ボタンをクリックしてタスクを実行します。
MATLAB により、クラスタリングされたデータおよびクラスター平均が散布図に表示されます。
クラスター数を 3
に増やして、タスクを再実行します。MATLAB により、更新済みのクラスタリングされたデータおよびクラスター平均が散布図に表示されます。
このタスクにより、ライブ スクリプトにコードが生成されます。生成されたコードは、選択したパラメーターおよびオプションを反映しており、散布図を生成するコードを含みます。生成コードを参照するには、タスク パラメーター エリアの下部にある [コードの表示] をクリックします。タスクが展開され、生成されたコードが表示されます。
既定では、生成されたコードは、MATLAB のワークスペースに返される出力変数の名前として、clusterIndices
および centroids
を使用します。clusterIndices
ベクトルは、クラスター インデックスを含む数値列ベクトルです。clusterIndices
の各行は、対応する観測値のクラスター割り当てを示します。centroids
行列は、クラスター重心位置を含む数値行列です。別の出力変数名を指定するには、タスクの上部の概要行に新しい名前を入力します。たとえば、2 つの変数名を c_indices
および c_locations
に変更します。
タスクの実行時に生成コードが更新され、新しい変数名が反映されます。新しい変数 c_indices
および c_locations
が MATLAB のワークスペースに表示されます。
ライブ エディター タスクを使用した k-means クラスタリングの最適なクラスター数の評価
この例では、[データのクラスタリング] タスクを使用し、選択した基準に基づいてクラスタリング解を対話的に評価する方法を示します。
標本データを読み込みます。このデータには、3 種のアヤメの花のがく片と花弁からの長さと幅の測定値が含まれています。
load fisheriris
[データのクラスタリング] タスクを開きます。タスクを開くには、まずコード ブロックにキーワード「clustering
」を入力し、推奨されたコマンド補完から [データのクラスタリング] を選択します。
タスクで [k-means クラスタリング] アルゴリズムを選択します。 (R2024a 以降)
最適なクラスター数を評価します。
入力データとして変数
[meas]
を選択します。クラスター数の選択方法を
Optimal
に設定します。範囲の最小値と最大値を
2
および6
に設定します。[ライブ エディター] タブで、 [実行] ボタンをクリックしてタスクを実行します。
MATLAB により、評価結果の棒グラフが表示され、Calinski-Harabasz 基準に基づく最適なクラスター数が 3 であることを示しています。散布図には、最適なクラスター数 3 を使用して、クラスタリングされたデータおよびクラスター平均が表示されます。結果は異なる場合があります。
ライブ エディター タスクを使用した階層的クラスタリングのしきい値の指定
R2024a 以降
この例では、[データのクラスタリング] タスクを使用して、指定したクラスター ツリーのカットオフで階層的クラスタリングを対話的に実行する方法を示します。
標本データを読み込みます。このデータには、3 種のアヤメの花のがく片と花弁からの長さと幅の測定値が含まれています。
load fisheriris
[データのクラスタリング] タスクを開きます。タスクを開くには、まずコード ブロックにキーワード「clustering
」を入力し、推奨されたコマンド補完から [データのクラスタリング] を選択します。
タスクで [階層的クラスタリング] アルゴリズムを選択します。
既定のクラスター数を使用してデータをクラスタリングします。
入力データとして変数
[meas]
を選択します。必要に応じて、最大クラスター数を
2
に設定します。[ライブ エディター] タブで、 [実行] ボタンをクリックしてタスクを実行します。
MATLAB により、クラスター ツリーが樹形図に表示され、クラスタリングされたデータが散布図に表示されます。
カットオフを使用してデータを 3 つのクラスターに分割し、タスクを再実行します。
クラスター数の選択方法を
[Manual cutoff]
に設定します。しきい値を
1.8
、クラスター基準を[Distance]
に設定します。前の樹形図から、このカットオフ値によって階層クラスター ツリーが 3 つのクラスターに分割されることがわかります。樹形図に 3 つのクラスターが表示されるように、色のしきい値を
45
パーセントに設定します。[ライブ エディター] タブで、 [実行] ボタンをクリックしてタスクを実行します。
MATLAB により、更新された樹形図と散布図が表示されます。
このタスクにより、ライブ スクリプトにコードが生成されます。生成されたコードは、選択したパラメーターおよびオプションを反映しており、散布図を生成するコードを含みます。生成コードを参照するには、タスク パラメーター エリアの下部にある [コードの表示] をクリックします。タスクが展開され、生成されたコードが表示されます。
既定では、生成されたコードは、MATLAB ワークスペースに返される出力変数の名前として clusterIndices
を使用します。clusterIndices
ベクトルは、クラスター インデックスを含む数値列ベクトルです。clusterIndices
の各行は、対応する観測値のクラスター割り当てを示します。別の出力変数名を指定するには、タスクの上部の概要行に新しい名前を入力します。たとえば、変数名を c_indices
に変更します。
タスクの実行時に生成コードが更新され、新しい変数名が反映されます。新しい変数 c_indices
が MATLAB ワークスペースに表示されます。
関連する例
パラメーター
入力データ
— クラスタリングするデータ
数値行列
使用可能なワークスペース変数から変数を選択することにより、クラスタリングするデータを指定します。変数は、リストに表示されている数値行列でなければなりません。
選択方法
— クラスターの選択方法
Manual
| Optimal
| Manual num clusters
| Manual cutoff
| Optimal num clusters
データに最適なクラスター数を決定する方法を指定します。
k-means クラスタリングのオプション
手動
(既定) — データをグループ化するクラスター数を手動で指定します。最適
— 関数evalclusters
を使用して、ギャップ値、シルエット値、Davies-Bouldin インデックス値、Calinski-Harabasz インデックス値などの基準に基づいて最適なクラスター数を求めます。
階層的クラスタリングのオプション
手動のクラスター数
(既定) — データをグループ化する最大クラスター数を手動で指定します。手動カットオフ
— 階層クラスター ツリーを打ち切り、データをグループ化するクラスター数を判定するためのしきい値を手動で指定します。[不整合]
基準を使用すると、サブクラスターの不整合係数がしきい値未満であるクラスターが [データのクラスタリング] タスクでグループ化されます。[距離]
基準を使用すると、サブクラスターの高さがしきい値未満であるクラスターが [データのクラスタリング] タスクでグループ化されます。最適なクラスター数
— 関数evalclusters
を使用して、ギャップ値、シルエット値、Davies-Bouldin インデックス値、Calinski-Harabasz インデックス値などの基準に基づいて最適なクラスター数を求めます。
範囲
— 評価するクラスター数のリスト
最小と最大の正の整数値
評価するクラスター数のリストを、最小値と最大値から成る範囲として指定します。たとえば、最小値 2
および最大値 6
を指定した場合、クラスター数 2、3、4、5、6 を評価して、最適な数を決定します。
k-means クラスタリングの既定の範囲は 2:5
です。階層的クラスタリングの既定の範囲は 2:3
です。
結果の表示
— 結果のプロット
チェック ボックス
クラスタリングされたデータを表示するには、以下の利用可能なオプションから選択します。
k-means クラスタリングのオプション
クラスタリングされたデータの主成分を 2D 散布図に表示するには、[2D 散布図 (PCA)] を選択します。[データのクラスタリング] タスクは、関数
pca
およびgscatter
を使用して散布図を作成します。散布図の行列にクラスタリングされたデータを表示するには、[散布図の行列] を選択します。[散布図の行列] を選択すると、リストがチェック ボックスの右側に表示されます。リストの各項目は、指定された入力データの列を表します。Ctrl キーを押して、リストから最大 4 つの入力データ列を選択します。[データのクラスタリング] タスクは、関数
gplotmatrix
を使用して、選択された列から散布図の行列を作成します。行列中の散布図は、選択した入力データ列をクラスター インデックス全体で比較しています。行列の対角線上の図は、選択した列の分布を各クラスター インデックスに対して表しているヒストグラムです。
どちらのプロットについても、クラスタリングされたデータとクラスター平均を表示するかどうかを選択できます。
階層的クラスタリングのオプション
階層クラスター ツリーを表示するには、[樹形図] を選択します。[樹形図] を選択すると、3 つのパラメーターがチェック ボックスの右に表示されます。1 つ目のパラメーターは、色のしきい値をツリーにおける最大 (リンク) 距離の割合として指定します。2 つ目のパラメーターは、ツリーに表示するリーフ ノードの最大数を制御します。3 つ目のパラメーターは、ツリーの向きを
[上]
、[下]
、[左]
、または[右]
に変更します。[データのクラスタリング] タスクは、関数dendrogram
を使用してプロットを作成します。樹形図は、[最適なクラスター数]
選択方法を使用する場合は利用できません。クラスタリングされたデータを 2D 散布図に表示するには、[2D 散布図] を選択します。[2D 散布図] を選択すると、2 つのリストがチェック ボックスの右に表示されます。リストの項目は、指定された入力データの列を表します。1 つ目のリストでプロットの x 軸の変数を指定し、2 つ目のリストで y 軸の変数を指定します。[データのクラスタリング] タスクは、関数
gscatter
を使用して散布図を作成します。[2D 散布図] を選択する代わりに [3D 散布図] を選択すると、クラスタリングされたデータを 3D 散布図に表示できます。[3D 散布図] を選択すると、3 つのリストがチェック ボックスの右に表示されます。これらのリストで x 軸、y 軸、z 軸の各変数を指定します。[データのクラスタリング] タスクは、関数
scatter3
を使用して散布図を作成します。散布図の行列にクラスタリングされたデータを表示するには、[散布図の行列] を選択します。[散布図の行列] を選択すると、リストがチェック ボックスの右側に表示されます。リストの各項目は、指定された入力データの列を表します。Ctrl キーを押して、リストから最大 4 つの入力データ列を選択します。[データのクラスタリング] タスクは、関数
gplotmatrix
を使用して、選択された列から散布図の行列を作成します。
ヒント
既定では、[データのクラスタリング] タスクでは、タスク パラメーターを変更しても自動的には実行されません。変更後にタスクを自動的に実行させるには、タスクの右上にある [自動実行] ボックスを選択します。データ セットが大きい場合は、このオプションを有効にしないでください。
バージョン履歴
R2021b で導入R2024a: 階層的クラスタリングを使用したデータのクラスタリング
[データのクラスタリング] ライブ エディター タスクを使用して、階層的クラスタリングをライブ スクリプトで対話的に実行できるようになりました。
最大クラスター数を選択するか、基になる階層クラスター ツリー (樹形図) の適切なカットオフを指定します。必要に応じて、観測値間の距離を計算するメトリクスやクラスター間の距離を計算する方法を指定します。タスクで樹形図がプロットされ、パラメーター値やオプションの変更による影響を対話的に調べることができます。
あるいは、最適なクラスター数を評価します。必要に応じて、階層クラスター ツリーのクラスターを定義するための基準を指定できます。この場合、タスクで樹形図はプロットされません。散布図を使用してクラスターを可視化します。
ライブ スクリプトの一部となるコードがタスクで自動的に生成されます。
参考
kmeans
| evalclusters
| scatter
| gscatter
| gplotmatrix
| pca
| pdist
| linkage
| cluster
| dendrogram
| scatter3
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)