インテル® DAAL 2018 デベロッパー・ガイド

分散処理

このモードは、データセットが計算ノードの nblocks ブロックに分割されていると仮定します。

パラメーター

分散処理モードの K 平均法のセントロイド初期化のパラメーターは次のとおりです。

パラメーター

method

デフォルト値

説明

computeStep

任意

適用不可

アルゴリズムを初期化するために必要なパラメーターです。次のいずれか。

  • step1Local - 第 1 ステップ、ローカルノードで実行。すべてのメソッドに適用できます。
  • step2Master - 第 2 ステップ、マスターノードで実行。deterministic および random メソッドにのみ適用できます。
  • step2Local - 第 2 ステップ、ローカルノードで実行。plusPlus および parallelPlus メソッドにのみ適用できます。
  • step3Master - 第 3 ステップ、マスターノードで実行。plusPlus および parallelPlus メソッドにのみ適用できます。
  • step4Local - 第 4 ステップ、ローカルノードで実行。plusPlus および parallelPlus メソッドにのみ適用できます。
  • step5Master - 第 5 ステップ、マスターノードで実行。plusPlus および parallelPlus メソッドにのみ適用できます。

algorithmFPType

任意

float

アルゴリズムが中間計算に使用する浮動小数点の型。float または double を指定できます。

method

適用不可

defaultDense

K 平均法に利用可能な初期化メソッド。

  • defaultDense - 初期セントロイドとして最初の nClusters 特徴ベクトルを使用

  • deterministicCSR - CSR 数値テーブルのデータの初期セントロイドとして最初の nClusters 特徴ベクトルを使用

  • randomDense - 初期セントロイドとしてランダムな nClusters 特徴ベクトルを使用

  • randomCSR - CSR 数値テーブルのデータの初期セントロイドとしてランダムな nClusters 特徴ベクトルを使用

  • plusPlusDense - K-Means++ アルゴリズム [Arthur2007] を使用

  • plusPlusCSR - CSR 数値テーブルのデータに K-Means++ アルゴリズムを使用

  • parallelPlusDense - 並列 K-Means++ アルゴリズム [Bahmani2012] を使用

  • parallelPlusCSR - CSR 数値テーブルのデータに並列 K-Means++ アルゴリズムを使用

詳細は、「アルゴリズムの説明」を参照してください。

nClusters

任意

適用不可

セントロイドの数。必須です。

nRowsTotal

任意

0

すべてのノードのすべての入力データセットの行の総数。第 1 ステップの分散処理モードで必要です。

seed

任意

777

乱数生成用のシード。

offset

 

適用不可

指定されたローカルノードに格納されたブロックの開始を指定する合計データセットのオフセット。必須です。

oversamplingFactor

parallelPlusDenseparallelPlusCSR

0.5

並列 K-Means++ の各 nRounds における nClusters の割合L=nClusters*oversamplingFactor ポイントはラウンドでサンプルされます。詳細は、[Bahmani2012] のセクション 3.3 を参照してください。

nRounds

parallelPlusDenseparallelPlusCSR

5

並列 K-Means++ のラウンド数。(L*nRounds) は nClusters より大きくなければなりません。詳細は、[Bahmani2012] のセクション 3.3 を参照してください。

firstIteration

plusPlusDenseplusPlusCSRparallelPlusDenseparallelPlusCSR

false

step2Local が初めて呼び出された場合は true に設定します。

outputForStep5Required

parallelPlusDenseparallelPlusCSR

false

step4Localステップ 2 - ステップ 4 ループの最後の反復で呼び出された場合は true に設定します。

K 平均法のセントロイド初期化は、アルゴリズムで説明されている一般的なスキーマに従います。

plusPlus メソッド
K-Means++ 法初期化分散の一般的なワークフロー

parrallelPlus メソッド
並列 K 平均法初期化分散の一般的なワークフロー

ステップ 1 - ローカルノード (deterministicrandomplusPlusparallelPlus メソッド)

plusPlus メソッド
K-Means++ 法初期化分散のステップ 1

parrallelPlus メソッド
並列 K 平均法初期化分散のステップ 1

このステップの K 平均法のセントロイド初期化の入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

data

ローカルノードの i 番目のデータブロックを表す ni x p 数値テーブルのポインター。defaultDenserandomDenseplusPlusDense、または parallelPlusDense メソッドの入力は NumericTable の派生クラスのオブジェクトですが、deterministicCSRrandomCSRplusPlusCSR、または parallelPlusCSR メソッドの入力は CSRNumericTable クラスのオブジェクトのみです。

このステップで、K 平均法のセントロイド初期化は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

非推奨: partialClustersNumber

これは古い項目 (非推奨) で、将来のリリースで削除される予定です。

ローカルノードで計算されたセントロイドの数を含む 1 x 1 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

非推奨: partialClusters

代わりに使用: partialCentroids

ローカルノードで計算されたセントロイドを含む nClusters x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

ステップ 2 - マスターノード (deterministic および random メソッド)

このステップは、deterministic および random メソッドにのみ適用できます。K 平均法のセントロイド初期化の各ローカルノードからの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

partialResuts

ステップ 1 で計算された結果を含むコレクション (各ローカルノードから 2 つの数値テーブル)。

このステップで、K 平均法のセントロイド初期化は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

centroids

セントロイドを含む nClusters x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

ステップ 2 - ローカルノード (plusPlus および parallelPlus メソッド)

plusPlus メソッド
K-Means++ 法初期化分散のステップ 2

parrallelPlus メソッド
並列 K 平均法初期化分散のステップ 2

このステップは、plusPlus および parallelPlus メソッドにのみ適用できます。K 平均法のセントロイド初期化の各ローカルノードからの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

data

ローカルノードの i 番目のデータブロックを表す ni x p 数値テーブルのポインター。defaultDenserandomDenseplusPlusDense、または parallelPlusDense メソッドの入力は NumericTable の派生クラスのオブジェクトですが、deterministicCSRrandomCSRplusPlusCSR、または parallelPlusCSR メソッドの入力は CSRNumericTable クラスのオブジェクトのみです。

inputOfStep2

前のステップ (ステップ 1 またはステップ 4) で計算されたセントロイドを含む m x p 数値テーブルのポインター。

m の値はアルゴリズムのメソッドおよび反復により定義されます。

  • plusPlus メソッド: m = 1
  • parallelPlus メソッド:
    • m = 1 (ステップ 2 - ステップ 4 ループの最初の反復の場合)
    • m = L = nClusters*oversamplingFactor (その他の反復の場合)

この入力は、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトです。

internalInput

ステップ 2 およびステップ 4 のローカルノードで使用される分散アルゴリズムの内部データを含む DataCollection オブジェクトのポインター。DataCollection は、firstIterationtrue に設定されている場合、ステップ 2 で作成されます。DataCollection は、次のローカルステップ (ステップ 2 およびステップ 4) の入力として、部分結果から設定されます。

このステップで、K 平均法のセントロイド初期化は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

outputOfStep2ForStep3

ノードで累計された総合誤差を含む 1 x 1 数値テーブルのポインター。総合誤差の説明は、「K 平均法詳細」を参照してください。

デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

outputOfStep2ForStep5

parallelPlus メソッドにのみ適用でき、outputForStep5Required が true に設定されている場合に計算されます。前のステップで計算されたセントロイド候補の評価を含む 1 x m 数値テーブルのポインター。m = oversamplingFactor*nClusters*nRounds + 1。評価の説明は、「K 平均法詳細」を参照してください。

デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

ステップ 3 - マスターノード (plusPlus および parallelPlus メソッド)

plusPlus メソッド
K-Means++ 法初期化分散のステップ 3

parrallelPlus メソッド
並列 K 平均法初期化分散のステップ 3

このステップは、plusPlus および parallelPlus メソッドにのみ適用できます。K 平均法のセントロイド初期化の各ローカルノードからの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

inputOfStep3FromStep2

ローカルノードに累計された誤差の部分をマップするキー/値データのコレクション。このコレクションの i 番目の要素は i 番目のノードに累計された総合誤差を含む数値テーブルです。

このステップで、K 平均法のセントロイド初期化は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

outputOfStep3ForStep4

ローカルノードにステップ 4 の入力をマップするキー/値データのコレクション。このコレクションの i 番目の要素は i 番目のノードのステップ 4 の入力を含む数値テーブルです。ステップ 3 で、一部のローカルノードのステップ 4 の入力が生成されない (コレクションに i 番目のノードエントリーが含まれない) 場合があることに注意してください。この数値テーブル vΦX(C) の単一要素。ここで、総合誤差 ΦX(C) はノードで計算されます。総合誤差の説明は、「K 平均法詳細」を参照してください。この値は、i 番目のノードの新しいセントロイドをサンプリングする確率を定義します。

outputOfStep3ForStep5

parallelPlus メソッドにのみ適用できます。ステップ 5 で使用されるサービスデータのポインター。

ステップ 4 - ローカルノード (plusPlus および parallelPlus メソッド)

plusPlus メソッド
K-Means++ 法初期化分散のステップ 4

parrallelPlus メソッド
並列 K 平均法初期化分散のステップ 4

このステップは、plusPlus および parallelPlus メソッドにのみ適用できます。K 平均法のセントロイド初期化の各ローカルノードからの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

data

ローカルノードの i 番目のデータブロックを表す ni x p 数値テーブルのポインター。defaultDenserandomDenseplusPlusDense、または parallelPlusDense メソッドの入力は NumericTable の派生クラスのオブジェクトですが、deterministicCSRrandomCSRplusPlusCSR、または parallelPlusCSR メソッドの入力は CSRNumericTable クラスのオブジェクトのみです。

inputOfStep4FromStep3

ステップ 3 で計算された値を含む l x m 数値テーブルのポインター。

m の値はアルゴリズムのメソッドにより定義されます。

  • plusPlus メソッド: m = 1
  • parallelPlus メソッド: mL, L = nClusters*oversamplingFactor

この入力は、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトです。

internalInput

ステップ 2 およびステップ 4 のローカルノードで使用される分散アルゴリズムの内部データを含む DataCollection オブジェクトのポインター。DataCollection は、firstIterationtrue に設定されている場合、ステップ 2 で作成されます。DataCollection は、次のローカルステップ (ステップ 2 およびステップ 4) の入力として、部分結果から設定されます。

このステップで、K 平均法のセントロイド初期化は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

outputOfStep4

このローカルノードで計算されたセントロイドを含む m x p 数値テーブルのポインター。ここで、minputOfStep4FromStep3 の値と同じです。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

ステップ 5 - マスターノード (parallelPlus メソッド)


並列 K 平均法初期化分散のステップ 5

このステップは、parallelPlus メソッドにのみ適用できます。K 平均法のセントロイド初期化の各ローカルノードからの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

inputCentroids

ステップ 1 またはステップ 4 で計算されたセントロイドを含むデータのコレクション。コレクションの各アイテムは m x p 数値テーブルのポインターです。ここで、m の値はアルゴリズムのメソッドおよび反復により定義されます。

  • parallelPlus メソッド:
    • m = 1 (ステップ 1 の出力として追加されたデータの場合)
    • mL, L = nClusters*oversamplingFactor (ステップ 4 の出力として追加されたデータの場合)

各数値テーブルは、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトです。

inputOfStep5FromStep2

ローカルノードのステップ 2 で計算されたアイテムを含むデータのコレクション。詳細は、上記の outputOfStep2ForStep5 を参照してください。

inputOfStep5FromStep3

マスターノードのステップ 3 の出力として生成されたサービスデータのポインター。詳細は、上記の outputOfStep3ForStep5 を参照してください。

このステップで、K 平均法のセントロイド初期化は次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

centroids

セントロイドを含む nClusters x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

関連情報