PCA (HD)

直交変換を使用して、相関している可能性がある変数の一連の観測値を、相関していない変数 (主成分) の値のセットに変換します。

情報一覧

パラメーター

説明
カテゴリー モデル
データ ソース タイプ HD
出力を他のオペレーターに送信 はい
データ処理ツール インメモリ: MapReduce または Spark (入力構成に応じて)

アルゴリズム

PCA (主成分分析) は、データを新しい座標系に変換する直交線形変換であり、データの投影による最大の分散が最初の座標 (第 1 主成分と呼ばれる) に位置し、2 番目に大きい分散が 2 番目の座標に位置するようになります。 2 番目の座標、3 番目の座標、3 番目の座標は、座標の数に達するか、事前に設定された最大主成分しきい値に達するまで続きます。

アルパイン PCA オペレーターは、データ共分散行列 Σ (または相関行列 R) の固有値分解を実装します。

  • 各主成分は元の変数の線形結合です。
  • 係数 (負荷) は、単位長の共分散行列 Σ (または相関行列 R) の固有ベクトル (v1、v2、...vp) です。
  • 固有値 (λ1、λ2、...λp) は、それに関連付けられた主成分の寄与を示します。
  • 主成分は、分散の寄与に応じて降順で並べ替えられます。
  • ユーザーは累積寄与度に応じて主成分の数を選択できます (∑ij=1λj/∑pK=1λK)。

詳細については、『Principal Component Analysis、(1986)、Joliffe、I.T. 』を参照してください。

追加の参考資料:

  • Jerome Friedman, Trevor Hastie, Robert Tibshirani (2008), The Elements of Statistical Learning Data Mining, Inference and Prediction Chapter 3: "Linear Methods for Regression"
  • Joliffe, I.T. (1986), Principal Component Analysis, New York, Springer
  • Wu, W., Massart, D.L., and de Jong, S. (1997), "The Kernel PCA Algorithms for Wide Data. Part I: Theory and Algorithms" Chemometrics and Intelligent Laboratory Systems, 36, 165-172.

入力

前のオペレーターからのデータセット。

構成

パラメーター 説明
ノート このオペレーターのパラメーター設定に関するメモまたは役立つ情報。 [ノート] フィールドに内容を入力すると、オペレーターに黄色のアスタリスクが表示されます。
カラム [カラム] をクリックすると、変数の削減されたセットを作成するために、PCA アルゴリズムによる変換に使用可能な変数カラムを選択するためのダイアログが開きます。
センター [はい] (デフォルト) の場合、PCA 行列変換アルゴリズムが実行される前に、各変数カラムの平均値が 0 に設定されます。 [スケール] と組み合わせると、次のことが適用されます。
  • [はい] で、[スケール][いいえ] の場合、共分散行列が適用されます。
  • [はい] で、[スケール][はい] の場合、相関行列が適用されます。
  • [いいえ] で、[スケール][いいえ] の場合、未補正の共分散行列が適用されます。

通常、PCA アルゴリズムはデータが最初に中央に配置される場合にのみ意味を持ちます。そのため、デフォルトは [はい] に設定されます。

[Spark を使用する][はい] に設定されている場合、このパラメーターはグレー表示になります。

スケール スケール オプションが選択されている場合、各変数のデータ値は標準偏差で除算され、すべてのカラムのデータの広がりが同じになります (つまり、互いに等しいスケールになります)。

アルゴリズムへの影響の詳細については、「センター」を参照してください。

デフォルト値: はい。標準偏差がゼロの変数は PCA に入力しないでください。 [Spark を使用する][はい] に設定されている場合、このパラメーターはグレー表示になります。

メモリ内しきい値 PCA を Hadoop MapReduce ジョブによって計算するか、メモリ内 SVD (分散モードではなく単一マシン) によって計算するかを決定します。

トレーニング データセット内の行数がしきい値よりも少ない場合、PCA アルゴリズムはメモリ SVD で実行されます。それ以外の場合は、MapReduce ジョブによって計算されます。

入力パラメータ [Spark を使用する][はい] に設定されている場合、ジョブはこのパラメーターの値に関係なく Spark で実行されます (グレー表示されます)。

ノート: MapReduce オプションは現在非推奨です。

出力するコンポーネントの最大数。 上位の分散成分から計算する主成分の上限数を決定します。次元の削減を支援するために、この値はトレーニング データセットの列数と同じか、通常はそれより少ない値にする必要があります。

この値の選択は、カバーしたい累積分散に応じて異なります。この数値が十分なコンポーネントを返すかどうかを確認するには、出力タブ 分散 ([Spark の使用][はい] に設定されている場合) または出力タブ 累積分散 ([Spark を使用する][いいえ] に設定されている場合)。

分散モードの追加実行 インメモリ SVD を計算するときに実装するアルゴリズムの必要な追加パスの数を指定します。通常、数または行がメモリ内しきい値よりも小さい場合は、単一パスの結果で十分です。

デフォルト値: 0 (追加の実行なし)。

[Spark を使用する][はい] に設定されている場合、このパラメーターはグレー表示になります。

最大 JVM ヒープ サイズ (MB) (-1=自動) Hadoop 用の Java 仮想マシン データ ストレージ設定。 (Spark オプションのみ)

  • デフォルト値は 1024 です。
  • 値が -1 の場合、システムはヒープ サイズを自動的に設定します。

[Spark を使用する][はい] に設定されている場合、このパラメーターはグレー表示になります。

Spark を使用 [はい] (デフォルト) の場合、Spark を使用して計算時間を最適化します。
高度な Spark 設定の自動最適化
  • [はい] は、デフォルトの Spark 最適化設定の使用を指定します。
  • [いいえ] を選択すると、カスタマイズされた Spark 最適化を提供できます。 [設定の編集] をクリックして、Spark の最適化をカスタマイズします。詳細については、「詳細設定ダイアログ」を参照してください。

出力

ビジュアル出力
Hadoop のビジュアル出力では、主成分とその寄与の重み付け、スケーリング、センタリング、分散、累積分散が視覚化されます。
コンポーネント
新しい主成分をカラムとして表示し、各行は派生成分値に対するソース データ変数の寄与を示します。

分散 (Variance)
データ全体の分散に対する各主成分の寄与を示します。分散は、元のデータセット内のすべての分散のうち、特定のコンポーネントによってどの程度がキャプチャされるかを示す尺度を提供します。 [Spark を使用する][はい] に設定されている場合、このタブには追加のカラムとして累積分散も含まれます。 分散 カラムは、説明分散と呼ばれます。

分散出力

センター
主成分を計算する前にデータをクリーンアップするために元のデータセット カラムに対してセンタリングが行われたかどうかを示します。表示されるデータは、PCA アルゴリズムで使用された元のデータセットのカラムの中心値を示します。注: 値が 0 でない場合、アルゴリズムを実行する前にデータが中央に配置されていません。PCA アルゴリズムを実行する前に、ソース データを正規化し、0 を中心とすることが最善です。

スケール
渡された元の値に対するソース データセットのカラムの相対的なサイズを示します。注: 値が「1」(元の値の 100% を意味する) でない場合、PCA アルゴリズムを実行する前にスケーリングは行われていません。

分散 (Variances)
データ全体の分散に対する各主成分の寄与を示します (上記の分散データの場合)。分散は、元のデータセット内のすべての分散のうち、特定のコンポーネントによってどの程度がキャプチャされるかを示す尺度を提供します。視覚化出力は、データセットの分散のほとんどを説明する主成分がいくつあるかをすばやく確認するのに役立ちます。最初のいくつかの主成分の分散値が高く、その後値が低下する場合、それらの成分は次元削減データセットとして使用する必要があります。
ノート: [Spark を使用][はい] に設定されている場合、このタブは出力されません。

累積分散
このグラフは、各主成分の累積重要性 (最も重要な主成分から順に) と、それらの成分がデータセットをどの程度効果的に説明するかを視覚化したものです。 90% しきい値到達ラインは、データ分散の 90% が説明される累積主成分点を示します。これは、データの分散の大部分を説明する主成分がいくつあるかを知るのに役立ちます。以下の例では、データ分散の 90% を説明するのは最初の 10 個の主成分です。
ノート: [Spark を使用する][はい] に設定されている場合、このタブは出力されません。累積分散は、分散 出力タブの追加列としてレポートされます。

主成分空間の特徴
このグラフは、元のデータ空間から 1 番目と 2 番目の主成分が広がる 2 次元空間へのソース変数 (列) 軸の視覚化を提供します。その結果、主成分空間で軸が互いに近い変数 (列) は相互に高い相関関係を持ち、長いベクトル (軸) ほど全体の分散を説明する関連性が高くなります。以下の例では、sepal_widthsepal_length、および petal_length の 3 つの軸が最も長く、データ分散に最も関連しています。また、sepal_width 変数と sepal_length 変数は、sepal_lengthpetal_length よりも相互に密接に相関しています。
ノート: [Spark を使用する][はい] に設定されている場合、このタブは出力されません。

ノート: このオペレーターで利用できるビジュアライゼーションの詳細については、「ビジュアル結果の精査」を参照してください。
データ出力
Hadoop 対応 PCA オペレーターは、変換されたデータセット自体ではなく、主成分を出力します。
ノート: データセットに対して変換を実行するには、Hadoop PCA オペレーターの後に 予測器 オペレーターが続く必要があります。このオペレーターは、変換されたカラム y_0_PCA,..., y_p_PCA を追加します。ここで (p+1) は、選択されたカラムの数と入力パラメーター [出力するコンポーネントの最大数] の値の間の最小値です。その後、変換はソース トレーニング データセットまたは新しい入力データセット (同じ変数を使用) に対して処理できます。

次の例は、Hadoop ワークフロー内の PCA および 予測器 オペレーターを示しており、その出力は 相関オペレーターに渡され、追加された変換された変数に相関がないことが確認されます。

詳細については、「予測器 (HD)」オペレーターを参照してください。

データ出力、Hadoop 用 PCA オペレーター