ニューラル ネット クラスタリング アプリを使用したデータのクラスタリング
この例では、"ニューラル ネット クラスタリング" アプリを使用して、データをクラスタリングするように浅層ニューラル ネットワークに学習させる方法を説明します。
nctool を使用して、"ニューラル ネット クラスタリング" アプリを開きます。
nctool

データの選択
"ニューラル ネット クラスタリング" アプリには、ニューラル ネットワークの学習を始めるのに役立つサンプル データが用意されています。
サンプルのアヤメの花クラスタリング データをインポートするには、[インポート]、[アヤメの花データ セットのインポート] を選択します。ファイルまたはワークスペースから自分のデータをインポートする場合は、予測子、および観測値が行と列のどちらで与えられるかを指定しなければなりません。

インポートしたデータに関する情報は、[モデルの概要] に表示されます。このデータ セットには、それぞれ 4 個の特徴をもつ 150 個の観測値が含まれています。

ネットワークの作成
クラスタリング問題では、自己組織化特徴マップ (SOM) がネットワークとして最もよく使用されます。このネットワークには 1 つの層と、グリッドに配置されたニューロンがあります 自己組織化マップは、類似性に基づいてデータをクラスタリングするように学習します。SOM の詳細については、自己組織化マップ ニューラル ネットワークによるクラスター化を参照してください。
ネットワークを作成するには、グリッドの行および列の数と対応するように、マップのサイズを指定します。この例では、[マップ サイズ] の値を 10 に設定します。これは、10 行 10 列のグリッドに対応します。ニューロンの総数はグリッド内の点の数と等しくなります。この例では、マップ内のニューロンの数は 100 個になります。ネットワーク アーキテクチャは [ネットワーク] ペインで確認できます。

ネットワークの学習
ネットワークの学習を行うには、[学習] をクリックします。[学習] ペインで学習の進行状況を確認できます。いずれかの停止条件が満たされるまで学習が続行されます。この例では、最大エポック数に達するまで学習が続行されます。

結果の解析
学習結果を解析するには、プロットを生成します。SOM の学習の場合、各ニューロンに関連付けられた重みベクトルが移動して、入力ベクトルのクラスターの中心になります。さらに、トポロジ内で互いに隣接するニューロンが入力空間内で相互に接近して移動するため、2 次元のネットワーク トポロジで高次元の入力空間を可視化できます。SOM の既定のトポロジは六角形です。
SOM サンプル ヒットをプロットするには、[プロット] セクションで [サンプル ヒット] をクリックします。この図は、トポロジ内のニューロンの位置、およびそれぞれのニューロン (クラスター中心) に関連付けられている観測値の数を示しています。トポロジは 10x10 のグリッドであるため、ニューロンの数は 100 個になります。ニューロンに関連付けられている最大のヒット数は 5 です。そのため、そのクラスターには 5 個の入力ベクトルがあります。

重み平面 ("成分平面" とも呼ばれます) をプロットします。[プロット] セクションで [重み平面] をクリックします。この図は、入力の特徴の各要素 (このサンプルでは 4 個) に対する重み平面を示しています。このプロットは、各入力を各ニューロンに結合する重みを示したもので、濃い色ほど重みが大きいことを表しています。2 つの特徴の結合パターンが非常に似ている場合、特徴に高い相関があると想定できます。

ネットワーク性能に満足できない場合、次のいずれかを行うことができます。
ネットワークに再度学習させる。学習を行うたびにネットワークの初期の重みとバイアスが変更されるため、再学習後に改善されたネットワークが生成される可能性があります。
マップのサイズを大きくすることにより、ニューロンの数を増やす。
より大規模な学習データ セットを使用する。
追加のテスト セットでネットワーク性能を評価することもできます。ネットワークを評価するための追加のテスト データを読み込むには、[テスト] セクションで [テスト] をクリックします。プロットを生成して追加のテスト結果を解析します。
コードの生成
[コード生成]、[単純な学習スクリプトを生成] を選択して MATLAB コードを作成することにより、コマンド ラインで以前に実行したステップを再現できます。MATLAB コードの作成は、ツールボックスのコマンド ライン機能を使用して学習プロセスをカスタマイズする方法を学ぶ必要がある場合に便利です。コマンド ライン関数を使用したデータのクラスタリングでは、生成されるスクリプトについてさらに詳しく説明します。

ネットワークのエクスポート
学習済みネットワークをワークスペースまたは Simulink® にエクスポートできます。MATLAB Compiler™ ツールなどの MATLAB コード生成ツールを使用してネットワークを展開することもできます。学習済みネットワークとその結果をエクスポートするには、[モデルのエクスポート]、[ワークスペースにエクスポート] を選択します。

参考
ニューラル ネット フィッティング | ニューラル ネット時系列 | ニューラル ネット パターン認識 | ニューラル ネット クラスタリング | train