主成分分析

より効率的な学習のために次元を削減した特徴セットを計算します

カテゴリ: データ変換/サンプルと分割

注意

適用対象: Machine Learning Studio (クラシック)

このコンテンツは、Studio (クラシック) のみに関連しています。 Azure Machine Learning デザイナーに同様のドラッグアンドドロップモジュールが追加されました。 この記事では、2つのバージョンの比較について詳しく説明します。

モジュールの概要

この記事では、Azure Machine Learning Studio (クラシック) の 主要コンポーネント分析 モジュールを使用して、トレーニングデータの次元を小さくする方法について説明します。 モジュールはデータを分析し、データセットに含まれているすべての情報をキャプチャする機能が制限された機能セットを作成します。

このモジュールは、新しいデータに適用できる変換も作成します。これによって、追加のトレーニングを要さずに同様の次元の削減および特徴の圧縮が実現できます。

主成分分析の詳細

主要なコンポーネント分析 (PCA) は、機械学習で広く使われている手法です。 これは、多くの種類のベクター空間データが圧縮可能であり、サンプリングによって圧縮が最も効率的に行われるという事実に依存しています。

PCA の利点を追加することで、データの視覚化が向上し、学習アルゴリズムによるリソースの使用が最適化されます。

Azure Machine Learning Studio (クラシック) の 主要コンポーネント分析 モジュールは、指定されたデータセット内の特徴列のセットを受け取り、次元の小さい特徴空間の射影を作成します。 このアルゴリズムでは、ランダム化手法を使用して、完全な機能マトリックスに含まれる情報の大部分をキャプチャする機能サブ空間を識別します。 そのため、変換されたデータ行列は、ノイズの影響を減らし、オーバーフィットのリスクを最小限に抑えると同時に、元のデータの分散をキャプチャします。

主要なコンポーネント分析 (PCA) に関する一般情報については、この Wikipedia の記事を参照してください。 このモジュールで使用されている PCA の方法の詳細については、次の記事を参照してください。

プリンシパルコンポーネントの分析を構成する方法

  1. 主要コンポーネント分析 モジュールを実験に追加します。 これは、[ データ変換] の [ スケールと減少 ] カテゴリで確認できます。

  2. 変換するデータセットを接続し、分析する機能列を選択します。

    特徴であり、ラベルである列をまだ明確にしていない場合は、 メタデータの編集 モジュールを使用して事前に列をマークすることをお勧めします。

  3. [縮小するディメンションの数: 最終的な出力に必要な列数を入力します。 各列は、入力列の情報の一部をキャプチャするディメンションを表します。

    たとえば、ソースデータセットに8つの列があり、型を入力すると 3 、選択された8つの列の情報をキャプチャする3つの新しい列が返されます。 列には、、、およびという名前が付けられ Col1 Col2 Col3 ます。 これらの列は、ソース列に直接マップされません。代わりに、列には、元の列1-8 で規定されている特徴空間の概数が含まれています。

    ヒント

    このアルゴリズムは、小さいディメンションの数が元のディメンションよりもはるかに小さい場合に最適に機能します。

  4. 高密度データセットをゼロ平均に正規化する: データセットが高密度の場合は、このオプションを選択します。これは、欠損値がいくつか含まれていることを意味します。 この値を選択すると、他の処理の前に、列の値が0の平均値に正規化されます。

    スパースデータセットの場合、このオプションは選択しないでください。 スパースデータセットが検出されると、パラメーターはオーバーライドされます。

  5. 実験を実行します。

結果

モジュールは、モデルの作成に使用できる列の縮小されたセットを出力します。 出力は、新しいデータセットとして保存することも、実験で使用することもできます。

必要に応じて、 [適用] 変換を使用して別のデータセットに適用するために、保存済みの変換として分析プロセスを保存できます。

変換を適用するデータセットには、元のデータセットと同じスキーマが必要です。

機械学習でプリンシパルコンポーネント分析を使用する方法の例については、 Azure AI Galleryを参照してください。

  • クラスタリング: 類似企業の検索: 主要なコンポーネント分析を使用して、テキストマイニングの値の数を管理しやすい数に減らします。

    このサンプル PCA はカスタム R スクリプトを使用して適用されますが、PCA が通常どのように使用されるかを示しています。

テクニカル ノート

下位次元のコンポーネントを計算するには、2つの段階があります。

  • 1つ目は、マトリックスのアクションをキャプチャする低次元のサブ空間を構築することです。
  • 2つ目の方法は、マトリックスをサブ空間に限定してから、削減された行列の標準的な因子分解計算することです。

想定される入力

名前 Type 説明
データセット データ テーブル 次元を削減するデータセット

モジュールのパラメーター

名前 Type Range 省略可能 説明 Default
[選択した列] ColumnSelection 必須 PCA を適用する、選択した列
削減後の次元の数 Integer >=1 必須 削減されるデータセット内に必要な次元の数
高密度データセットのゼロ平均正規化 Boolean 必須 true 高密度のデータセットに対して入力列が平均正規化されるかどうかを示します (スパース データのパラメーターは無視されます)

出力

名前 Type 説明
結果のデータセット データ テーブル 削減した次元を含むデータセット
PCA 変換 ITransform インターフェイス データセットに適用すると次元を削減した新しいデータセットが得られる変換

例外

例外 説明
エラー 0001 データ セットで指定した列のうち 1 つまたは複数が見つからない場合、例外が発生します。
エラー 0003 1 つまたは複数の入力が null または空の場合、例外が発生します。
エラー 0004 パラメーターが特定の値以下の場合、例外が発生します。

Studio (クラシック) モジュール固有のエラーの一覧については、「 Machine Learning エラーコード」を参照してください。

API 例外の一覧については、「 Machine Learning REST API のエラーコード」を参照してください。

関連項目

サンプルと分割
特徴選択