Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

データのクラスター化

ライブ エディターでの k-means アルゴリズムを使用したデータのクラスター化

R2021b 以降

説明

[クラスター データ] ライブ エディター タスクでは、k-means クラスタリングを対話的に実行できます。このタスクにより、ライブ スクリプト用の MATLAB® コードが生成され、結果として得られるクラスター インデックスおよびクラスター重心位置が MATLAB ワークスペースに返されます。

次が可能です。

  • クラスター数を選択して手動で、または、ギャップ値、シルエット値、Davies-Bouldin インデックス値、Calinski-Harabasz インデックス値などの基準を指定して自動的に、データに最適なクラスター数を決定する。

  • 距離計量および反復数など、データをクラスタリングするためのパラメーターをカスタマイズする。

  • クラスタリングされたデータを自動的に可視化する。

ライブ エディター タスクの全般的な情報については、ライブ スクリプトへの対話型タスクの追加を参照してください。

Cluster Data Task in the Live Editor

タスクを開く

[クラスター データ] タスクをライブ スクリプトに追加するには、次を実行します。

  • [ライブ エディター] タブで [タスク][クラスター データ] を選択します。

  • ライブ スクリプトのコード ブロックに、clustering または kmeans などの関連するキーワードを入力します。推奨されたコマンド補完から、[クラスター データ] を選択します。

すべて展開する

この例では、[クラスター データ] タスクを使用して、指定した数のクラスターに k-means クラスタリングを対話的に実行する方法を示します。

標本データを読み込みます。このデータには、3 種のアヤメの花のがく片と花弁からの長さと幅の測定値が含まれています。

load fisheriris

[クラスター データ] タスクを開きます。タスクを開くには、まずコード ブロックにキーワード「clustering」を入力し、推奨されたコマンド補完から [クラスター データ] を選択します。

Drop down list showing suggested command completions. The third suggestion in the list is for the Cluster Data Task, and is selected.

2 つのクラスターにデータをクラスター化します。

  • 入力データとして変数 meas を選択します。

  • クラスター数を 2 に設定します。

  • [ライブ エディター] タブで [実行] ボタンを押し、タスクを実行します。

MATLAB により、クラスタリングされたデータおよびクラスター平均が散布図に表示されます。

Cluster Data task showing the selected parameters and the resulting scatter plot with the sample data divided into two clusters.

クラスター数を 3 に増やして、タスクを再実行します。MATLAB により、更新済みのクラスタリングされたデータおよびクラスター平均が散布図に表示されます。

Cluster Data task showing the selected parameters and the resulting scatter plot with the sample data divided into three clusters.

このタスクにより、ライブ スクリプトにコードが生成されます。生成されたコードは、選択したパラメーターおよびオプションを反映しており、散布図を生成するコードを含みます。生成コードを参照するには、タスク パラメーター エリアの最後にある down arrow をクリックします。タスクが展開され、生成されたコードが表示されます。

Generated code for the Cluster Data task. The code uses the kmeans function to cluster the data and the scatter function to display the results.

既定では、生成されたコードは、MATLAB のワークスペースに返される出力変数の名前として、clusterIndices および centroids を使用します。clusterIndices ベクトルは、クラスター インデックスを含む数値列ベクトルです。clusterIndices の各行は、対応する観測値のクラスター割り当てを示します。centroids 行列は、クラスター重心位置を含む数値行列です。別の出力変数名を指定するには、タスクの上部の概要行に新しい名前を入力します。たとえば、2 つの変数名を c_indices および c_locations に変更します。

First row of the Cluster Data task with the renamed output c_indices and c_locations circled in red.

タスクの実行時に生成コードが更新され、新しい変数名が反映されます。新しい変数 c_indices および c_locations が MATLAB のワークスペースに表示されます。

この例では、[クラスター データ] タスクを使用し、選択した基準に基づいてクラスタリング解を対話的に評価する方法を示します。

標本データを読み込みます。このデータには、3 種のアヤメの花のがく片と花弁からの長さと幅の測定値が含まれています。

load fisheriris

[クラスター データ] タスクを開きます。タスクを開くには、まずコード ブロックにキーワード「clustering」を入力し、推奨されたコマンド補完から [クラスター データ] を選択します。

Drop down list showing suggested command completions. The third suggestion in the list is for the Cluster Data Task, and is selected.

最適なクラスター数を評価します。

  • 入力データとして変数 meas を選択します。

  • クラスター数の選択方法を Optimal に設定します。

  • 範囲の最小値と最大値を 2 および 6 に設定します。

  • [ライブ エディター] タブで [実行] ボタンを押し、タスクを実行します。

MATLAB により、評価結果の棒グラフが表示され、Calinski-Harabasz 基準に基づく最適なクラスター数が 3 であることを示しています。散布図には、最適なクラスター数 3 を使用して、クラスタリングされたデータおよびクラスター平均が表示されます。結果は異なる場合があります。

Cluster Data task showing the selected parameters and two charts. The chart is a bar chart displaying the evaluation results for each cluster number and the second chart is a scatter plot with the sample data divided into three clusters.

関連する例

パラメーター

すべて展開する

使用可能なワークスペース変数から変数を選択することにより、クラスタリングするデータを指定します。変数は、リストに表示されている数値行列でなければなりません。

データに最適なクラスター数を決定する方法を指定します。

  • Manual — データをグループ化するクラスター数を手動で指定します。

  • Optimal — 関数 evalclusters を使用して、ギャップ値、シルエット値、Davies-Bouldin インデックス値、Calinski-Harabasz インデックス値などの基準に基づいて最適なクラスター数を求めます。

評価するクラスター数のリストを、最小値と最大値から成る範囲として指定します。たとえば、最小値 2 および最大値 6 を指定した場合、クラスター数 2、3、4、5、6 を評価して、最適な数を決定します。

クラスタリングしたデータを表示するには、以下の利用可能なオプションから選択します。

  • クラスタリングされたデータの主成分を 2D 散布図に表示するには、[2D 散布図 (PCA)] を選択します。[クラスター データ] タスクは、関数 gscatter を使用して散布図を作成します。

  • 散布図の行列にクラスタリングされたデータを表示するには、[散布図の行列] を選択します。[散布図の行列] を選択すると、リストがチェック ボックスの右側に表示されます。リストの各項目は、指定された入力データの列を表します。Ctrl キーを押して、リストから最大 4 つの入力データ列を選択します。[クラスター データ] タスクは、関数 pca および gplotmatrix を使用して、選択した列から散布図の行列を作成します。

    行列中の散布図は、選択した入力データ列をクラスター インデックス全体で比較しています。行列の対角線上の図は、選択した列の分布を各クラスター インデックスに対して表しているヒストグラムです。

ヒント

  • 既定では、[クラスター データ] タスクでは、タスク パラメーターを変更しても自動的には実行されません。変更後にタスクを自動的に実行させるには、タスクの右上にある [自動実行] ボタンを選択します。データセットが大きい場合は、このオプションを有効にしないでください。

バージョン履歴

R2021b で導入