インテル® DAAL プログラミング・ガイド
このモードは、データセットが計算ノードの nblocks ブロックに分割されていると仮定します。
分散処理モードの PCA 計算は、アルゴリズムで説明されている一般的なスキーマに従います。
分散処理モードの PCA アルゴリズムのパラメーターは次のとおりです。
パラメーター |
デフォルト値 |
説明 |
|
---|---|---|---|
computeStep |
適用不可 |
アルゴリズムを初期化するために必要なパラメーターです。次のいずれか。
|
|
algorithmFPType |
double |
アルゴリズムが中間計算に使用する浮動小数点の型。float または double を指定できます。 |
|
method |
defaultDense |
PCA 計算に利用可能なメソッド。
|
以下の 2 ステップのスキーマを使用します。
このステップの PCA アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
入力 ID |
入力 |
|
---|---|---|
data |
ローカルノードの i 番目のデータブロックを表す ni x p 数値テーブルのポインター。入力は、NumericTable の派生クラスのオブジェクトです。 |
このステップで、PCA は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
結果 ID |
結果 |
|
---|---|---|
nObservationsCorrelation |
ローカルノードで処理された観測点の数を含む 1 x 1 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
crossProductCorrelation |
ローカルノードで計算されたクロス積行列を含む p x p 数値テーブルのポインター。デフォルトでは、このテーブルは HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
sumCorrelation |
ローカルノードで計算された部分和を含む 1 x p 数値テーブルのポインター。デフォルトでは、このテーブルは HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
ステップ 2 - マスターノード
このステップの PCA アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
入力 ID |
入力 |
|
---|---|---|
partialResults |
ローカルノードのステップ 1 で計算された結果 (nObservationsCorrelation、crossProductCorrelation、sumCorrelation) を含むコレクション。(PackedSymmetricMatrix および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトをコレクションに含めることができます。 |
このステップで、PCA は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
結果 ID |
結果 |
|
---|---|---|
eigenvalues |
降順で固有値を含む 1 x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
eigenvectors |
行優先順で固有ベクトルを含む p x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
サンプル
インテル® DAAL ディレクトリーの次のサンプルを参照してください。
C++: ./examples/cpp/source/pca/pca_correlation_distributed.cpp
Java*: ./examples/java/source/com/intel/daal/examples/pca/PCACorrelationDistributed.java
以下の 2 ステップのスキーマを使用します。
このステップの PCA アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
入力 ID |
入力 |
|
---|---|---|
data |
ローカルノードの i 番目のデータブロックを表す ni x p 数値テーブルのポインター。入力は、NumericTable の派生クラスのオブジェクトです。 |
このステップで、PCA は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
結果 ID |
結果 |
|
---|---|---|
nObservationsSVD |
ローカルノードで処理された観測点の数を含む 1 x 1 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
sumSVD |
ローカルノードで計算された部分和を含む 1 x p 数値テーブルのポインター。デフォルトでは、このテーブルは HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
sumSquaresSVD |
ローカルノードで計算された 2 乗の部分和を含む 1 x p 数値テーブルのポインター。デフォルトでは、このテーブルは HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
auxiliaryDataSVD |
ステップ 2 のマスターノードに転送する部分結果を含む数値テーブルのコレクション。(PackedSymmetricMatrix および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトをコレクションに含めることができます。 |
このステップの PCA アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
入力 ID |
入力 |
|
---|---|---|
partialResults |
ローカルノードのステップ 1 で計算された結果 (nObservationsSVD、sumSVD、sumSquaresSVD、auxiliaryDataSVD) を含むコレクション。(PackedSymmetricMatrix および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトをコレクションに含めることができます。 |
このステップで、PCA は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
結果 ID |
結果 |
|
---|---|---|
eigenvalues |
降順で固有値を含む 1 x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
eigenvectors |
行優先順で固有ベクトルを含む p x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
サンプル
インテル® DAAL ディレクトリーの次のサンプルを参照してください。
C++: ./examples/cpp/source/pca/pca_svd_distributed.cpp
Java*: ./examples/java/source/com/intel/daal/examples/pca/PCASVDDistributed.java