すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:Kコア

最終更新日:Jul 22, 2024

kコアアルゴリズムは、グラフ内で指定されたコアレネスを持つサブグラフを見つけるために使用されます。 グラフのkコアは、次数kまたはそれより低い次数を有する頂点が繰り返し除外された後の残りの部分グラフを指す。 Kコアコンポーネントは、サブグラフ内の各頂点に接続された頂点を生成できます。

コンポーネントの設定

方法1: パイプラインページでコンポーネントを設定する

K-Coreコンポーネントは、Platform for AI (PAI) コンソールのMachine Learning Designerのパイプラインページに追加できます。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

ソース頂点列

エッジテーブルの開始頂点列。

ターゲット頂点列

エッジテーブルの末尾の頂点列。

パラメーター設定

k

頂点のコアネス。 デフォルト値は 1 です。

頂点がk − コアに属するが、(k + 1) − コアに含まれない場合、頂点のコアネスはkである。

チューニング

労働者

並列ジョブ実行の頂点の数。 並列性とフレームワーク通信コストの程度は、このパラメータの値とともに増加します。

Workerあたりのメモリサイズ

1つのジョブで使用できるメモリの最大サイズ。 単位:MB。 デフォルト値: 4096

使用済みメモリのサイズがこのパラメーターの値を超えると、OutOfMemoryエラーが報告されます。

方法2: PAIコマンドを使用してコンポーネントを構成する

K-Coreコンポーネントは、PAIコマンドを使用して設定できます。 SQLスクリプトコンポーネントを使用してPAIコマンドを実行できます。 詳細については、「SQLスクリプト」トピックの「シナリオ4: SQLスクリプトコンポーネント内でPAIコマンドを実行する」をご参照ください。

PAI -name KCore
    -project algo_public
    -DinputEdgeTableName=KCore_func_test_edge
    -DfromVertexCol=flow_out_id
    -DtoVertexCol=flow_in_id
    -DoutputTableName=KCore_func_test_result
    -Dk=2;

パラメーター

必須

デフォルト値

説明

inputEdgeTableName

デフォルト値なし

入力エッジテーブルの名前。

inputEdgeTablePartitions

不可

フルテーブル

入力エッジテーブルのパーティション。

fromVertexCol

デフォルト値なし

入力エッジテーブルの開始頂点列。

toVertexCol

デフォルト値なし

入力エッジテーブルの末尾の頂点列。

outputTableName

デフォルト値なし

出力テーブルの名前。

outputTablePartitions

不可

デフォルト値なし

出力テーブルのパーティション。

ライフサイクルの設定 (Set lifecycle)

不可

デフォルト値なし

出力テーブルのライフサイクル。

workerNum

不可

指定なし

並列ジョブ実行の頂点の数。 並列性とフレームワーク通信コストの程度は、このパラメータの値とともに増加します。

workerMem

不可

4096

1つのジョブで使用できるメモリの最大サイズ。 単位:MB。 デフォルト値: 4096

使用済みメモリのサイズがこのパラメーターの値を超えると、OutOfMemoryエラーが報告されます。

splitSize

不可

64

データ分割サイズ。

k

1

頂点のコアネス。

例:

  1. SQLスクリプトコンポーネントを頂点としてキャンバスに追加し、次のSQL文を実行してトレーニングデータを生成します。

    drop table if exists KCore_func_test_edge;
    create table KCore_func_test_edge as
    select * from
    (
      select '1' as flow_out_id,'2' as flow_in_id
      union all
      select '1' as flow_out_id,'3' as flow_in_id
      union all
      select '1' as flow_out_id,'4' as flow_in_id
      union all
      select '2' as flow_out_id,'3' as flow_in_id
      union all
      select '2' as flow_out_id,'4' as flow_in_id
      union all
      select '3' as flow_out_id,'4' as flow_in_id
      union all
      select '3' as flow_out_id,'5' as flow_in_id
      union all
      select '3' as flow_out_id,'6' as flow_in_id
      union all
      select '5' as flow_out_id,'6' as flow_in_id
    )tmp;

    データ構造

    image

  2. SQLスクリプトコンポーネントを頂点としてキャンバスに追加し、次のPAIコマンドを実行してモデルをトレーニングします。

    drop table if exists ${o1};
    PAI -name KCore
        -project algo_public
        -DinputEdgeTableName=KCore_func_test_edge
        -DfromVertexCol=flow_out_id
        -DtoVertexCol=flow_in_id
        -DoutputTableName=${o1}
        -Dk=2;
  3. SQLスクリプトコンポーネントを右クリックし、[データの表示]> [SQLスクリプトの出力] を選択してトレーニング結果を表示します。

    | node1 | node2 |
    | ----- | ----- |
    | 1     | 2     |
    | 1     | 3     |
    | 1     | 4     |
    | 2     | 1     |
    | 2     | 3     |
    | 2     | 4     |
    | 3     | 1     |
    | 3     | 2     |
    | 3     | 4     |
    | 4     | 1     |
    | 4     | 2     |
    | 4     | 3     |