主成分分析
重要
Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。
2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。
- ML Studio (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning についての詳細を参照してください。
ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
より効率的な学習のために次元を削減した特徴セットを計算します
カテゴリ: データ変換/サンプルと分割
注意
適用対象: Machine Learning Studio (クラシック) のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
モジュールの概要
この記事では、Machine Learning Studio (クラシック) のプリンシパル コンポーネント分析モジュールを使用して、トレーニング データの次元を減らす方法について説明します。 モジュールはデータを分析し、データセットに含まれるすべての情報をキャプチャする機能セットを減らして作成しますが、特徴の数は少なくなります。
このモジュールは、新しいデータに適用できる変換も作成します。これによって、追加のトレーニングを要さずに同様の次元の削減および特徴の圧縮が実現できます。
主成分分析の詳細
プリンシパル コンポーネント分析 (PCA) は、機械学習で一般的な手法です。 これは、多くの種類のベクター空間データが圧縮可能であり、サンプリングによって圧縮を最も効率的に実現できるという事実に依存しています。
PCA の利点として、データの視覚化が向上し、学習アルゴリズムによるリソース使用の最適化が追加されています。
Machine Learning Studio (クラシック) のプリンシパル コンポーネント分析モジュールは、指定されたデータセット内の一連の特徴列を受け取り、次元が低い特徴空間の射影を作成します。 アルゴリズムでは、ランダム化手法を使用して、完全な特徴マトリックス内のほとんどの情報をキャプチャする特徴部分空間を特定します。 そのため、変換されたデータ マトリックスは、ノイズの影響を軽減し、オーバーフィットのリスクを最小限に抑えながら、元のデータの分散をキャプチャします。
プリンシパル コンポーネント分析 (PCA) に関する一般的な情報については、 この Wikipedia の記事を参照してください。 このモジュールで使用される PCA アプローチの詳細については、次の記事を参照してください。
ランダム性を持つ構造の検索: 近似行列分解を構築するためのプロバイリスティック アルゴリズム。 Halko、Martinsson、Tropp、2010 年。
大規模 PCA での構造化ランダム性と非構造化ランダム性の組み合わせ大規模 PCA での構造化ランダム性と非構造化ランダム性の組み合わせ。 2013 年の「パンパットジアキスとミネ」。
プリンシパル コンポーネント分析を構成する方法
プリンシパル コンポーネント 分析モジュールを 実験に追加します。 [データ変換] の [スケール] カテゴリと [Reduce] カテゴリ で確認 できます。
Connectデータセットを選択し、分析する特徴列を選択します。
特徴である列とラベルをまだ明確にしていない場合は、メタデータの編集モジュールを使用して列を事前にマークすることをお勧めします。
[削減するディメンションの数]: 最終的な出力に必要な列数を入力します。 各列は、入力列の情報の一部をキャプチャするディメンションを表します。
たとえば、ソース データセットに 8
3
つの列が含まれていますが、「」と入力すると、選択した 8 つの列の情報をキャプチャする 3 つの新しい列が返されます。 列の名前は、Col2
、Col1
、および ですCol3
。 これらの列は、ソース列に直接マップされるのではありません。代わりに、列には、元の列 1 から 8 で記述された特徴空間の近似値が含まれます。ヒント
アルゴリズムは、縮小ディメンションの数が元のディメンションよりもはるかに小さい場合に最適に機能します。
高密度データセットを平均 0 に正規化する: データセットが高密度である場合、このオプションを選択します。つまり、不足値が少ない場合に選択します。 選択した場合、モジュールは、他の処理の前に列の値を 0 の平均値に正規化します。
スパース データセットの場合、このオプションは選択されません。 スパース データセットが検出された場合、パラメーターはオーバーライドされます。
実験を実行します。
結果
モジュールは、モデルの作成に使用できる列の削減されたセットを出力します。 出力を新しいデータセットとして保存するか、実験で使用できます。
必要に応じて、解析プロセスを保存された変換として保存し、変換の適用を使用して別のデータセットに 適用できます。
変換を適用するデータセットには、元のデータセットと同じスキーマが必要です。
例
機械学習でプリンシパル コンポーネント分析を使用する方法の例については、次のページを Azure AI Gallery。
クラスタリング: 類似企業の検索: 主要なコンポーネント分析を使用して、テキスト マイニングから管理可能な数の特徴に値の数を減らします。
このサンプルの PCA はカスタム R スクリプトを使用して適用しますが、PCA の一般的な使い方を示しています。
テクニカル ノート
下位次元コンポーネントの計算には 2 つのステージがあります。
- 1 つ目は、マトリックスのアクションをキャプチャする低次元のサブスペースを構築する方法です。
- 2 つ目は、行列を部分空間に制限し、縮小行列の標準因子化を計算する方法です。
想定される入力
名前 | 型 | 説明 |
---|---|---|
データセット | データ テーブル | 次元を削減するデータセット |
モジュールのパラメーター
名前 | 種類 | Range | 省略可能 | 説明 | Default |
---|---|---|---|---|---|
[選択した列] | ColumnSelection | 必須 | PCA を適用する、選択した列 | ||
削減後の次元の数 | Integer | >=1 | 必須 | 削減されるデータセット内に必要な次元の数 | |
高密度データセットのゼロ平均正規化 | Boolean | 必須 | true | 高密度のデータセットに対して入力列が平均正規化されるかどうかを示します (スパース データのパラメーターは無視されます) |
出力
名前 | 型 | 説明 |
---|---|---|
結果のデータセット | データ テーブル | 削減した次元を含むデータセット |
PCA 変換 | ITransform インターフェイス | データセットに適用すると次元を削減した新しいデータセットが得られる変換 |
例外
例外 | 説明 |
---|---|
エラー 0001 | データ セットで指定した列のうち 1 つまたは複数が見つからない場合、例外が発生します。 |
エラー 0003 | 1 つまたは複数の入力が null または空の場合、例外が発生します。 |
エラー 0004 | パラメーターが特定の値以下の場合、例外が発生します。 |
Studio (クラシック) モジュールに固有のエラーの一覧については、「エラー コードMachine Learning参照してください。
API の例外の一覧については、「エラー コードMachine Learning REST API参照してください。