Main Content

次元削減

ライブ エディターでの主成分分析 (PCA) を使用した次元削減

R2022b 以降

説明

[次元削減] ライブ エディター タスクでは、主成分分析 (PCA) を対話的に実行できます。このタスクにより、ライブ スクリプト用の MATLAB® コードが生成され、結果として得られる変換後のデータが MATLAB ワークスペースに返されます。

[次元削減] ライブ エディター タスクを使用すると、次が可能です。

  • データの固定比率の分散 (95% や 99% など) を説明するために必要な成分の個数を調べる。

  • 主成分の説明分散のスクリー プロットを作成する。

  • 2 つの主成分の散布図を作成する。

  • 2 つの主成分のバイプロットを作成する。

  • 変換後のデータを取得する。

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

Reduce Dimensionality task in Live Editor

タスクを開く

[次元削減] タスクをライブ スクリプトに追加するには、次のいずれかの操作を実行します。

  • [ライブ エディター] タブで [タスク][次元削減] を選択するか、[挿入] タブで [タスク][次元削減] を選択します。

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

すべて展開する

cities データ セットを読み込みます。

load cities

[ホーム] タブの [ファイル] セクションで [新規ライブ スクリプト] をクリックします。

New Live Script button

[ライブ エディター] タブの [コード] セクションで [タスク] をクリックし、タスク ギャラリーを開きます。[統計と機械学習][次元削減] をクリックします。

[入力データ]、[ratings] を選択します。

Select ratings as the input data

ライブ エディター ウィンドウの左側にある斜めの縞模様のバーを使用するか、Ctrl+Enter を押してタスクを実行します。既定では、このタスクによって 3 つのプロットが作成されます。

Scree plot with four components to explain 95% of the variance

Scatter plot of two principal components

Biplot of two principal components

変換後のデータが transformedData (既定) という名前の変数としてワークスペースに返されます。この名前は編集できます。

Default name is transformedData

moore データ セットを読み込みます。

load moore

データを table に変換します。

tbl = array2table(moore);

[ホーム] タブの [ファイル] セクションで [新規ライブ スクリプト] をクリックします。

New Live Script button

[ライブ エディター] タブの [コード] セクションで [タスク] をクリックし、タスク ギャラリーを開きます。[統計と機械学習][次元削減] をクリックします。

[入力データ]、[tbl] を選択します。

Select tbl as the input data

ライブ エディター ウィンドウの左側にある斜めの縞模様のバーをクリックするか、Ctrl+Enter を押してタスクを実行します。既定では、このタスクによって 3 つのプロットが作成されます。

Scree plot requires only 2 components to explain almost all of the variance

Scatter plot of two principal components: component 1 from -4000 to 5000, and component 2 from -1500 to 2500

Biplot of two principal components showing three visible lines, two large lines at the southeast and northeast, and one small line near the x-axis.

関連する例

パラメーター

すべて展開する

使用可能なワークスペース変数から変数を選択することにより、削減するデータを指定します。変数は数値行列または table にすることができます。

データの次元を削減するための条件を指定します。

  • Explained variance (%) — 説明する分散の比率 (0 ~ 100 の非負のスカラー) を指定します。100 を指定すると、結果にはすべての主成分が保持されます。

  • Number of components — 1 からデータの列数までの値を指定します。データの列数を指定すると、結果にはすべての主成分が保持されます。

指定した条件に関係なく、すべての主成分をプロットできます。削減条件で変更されるのは、返される変換後データの列数だけです。プロットには削減前のすべての変換後データを使用できます。

主成分のプロットを表示するには、以下の利用可能なオプションから選択します。

  • 各主成分によって説明される分散の割合を棒グラフとして表示するには、[スクリー プロット] を選択します。累積パーセンテージが棒グラフの上にライン プロットとして表示されます。タスクでは、関数 bar を使用して棒グラフを作成し、関数 plot を使用して累積パーセンテージをプロットします。

  • データの主成分を 2D 散布図に表示するには、[2D 散布図] を選択します。タスクでは、グループ化変数が指定されているかどうかに応じて、関数 scatter または関数 gscatter を使用して散布図を作成します。

  • データを 2D バイプロットとしてプロットするには、[2D バイプロット] を選択します。タスクでは、関数 biplot を使用してバイプロットを作成します。

ヒント

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

バージョン履歴

R2022b で導入

参考

| | | |