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

Platform For AI:最大接続サブグラフ

最終更新日:Jul 22, 2024

Maximum Connected Subgraphアルゴリズムは、無向グラフ内の最大の接続部分を識別するために使用されます。これは、グラフ内の最大のノードセットです。 無向グラフでは、パスを使用して2つのノードを接続できます。 ほとんどの場合、アルゴリズムはネットワーク分析や画像処理などのシナリオで使用されます。 Maximum Connected Subgraphアルゴリズムは、深さ優先検索 (DFS) または幅優先検索 (BFS) を使用してグラフをトラバースし、すべての接続コンポーネントを識別し、最大数のノードを含むサブグラフを見つけます。

コンポーネントの設定

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

Platform for AI (PAI) コンソールのMachine Learning Designerのパイプラインページで、Maximum Connected Subgraphコンポーネントのパラメーターを設定します。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

Vertexを開始

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

エンドノード

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

チューニング

労働者

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

Workerあたりのメモリサイズ (MB)

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

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

データ分割サイズ (MB)

データ分割サイズ。 単位:MB。 デフォルト値: 64。

方法2: PAIコマンドを使用する

PAIコマンドを使用して、[最大接続サブグラフ] コンポーネントのパラメーターを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「シナリオ4: SQLスクリプトコンポーネント内でPAIコマンドを実行する」をご参照ください。

PAI -name MaximalConnectedComponent
    -project algo_public
    -DinputEdgeTableName=MaximalConnectedComponent_func_test_edge
    -DfromVertexCol=flow_out_id
    -DtoVertexCol=flow_in_id
    -DoutputTableName=MaximalConnectedComponent_func_test_result;

パラメーター

必須

デフォルト値

説明

inputEdgeTableName

デフォルト値なし

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

inputEdgeTablePartitions

不可

フルテーブル

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

fromVertexCol

デフォルト値なし

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

toVertexCol

デフォルト値なし

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

outputTableName

デフォルト値なし

出力テーブルの名前。

outputTablePartitions

不可

デフォルト値なし

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

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

不可

デフォルト値なし

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

workerNum

不可

デフォルト値なし

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

workerMem

不可

4096

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

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

splitSize

不可

64

データ分割サイズ。 単位:MB。

例:

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

    drop table if exists MaximalConnectedComponent_func_test_edge;
    create table MaximalConnectedComponent_func_test_edge as
    select * from
    (
      select '1' as flow_out_id,'2' as flow_in_id
      union all
      select '2' as flow_out_id,'3' as flow_in_id
      union all
      select '3' as flow_out_id,'4' as flow_in_id
      union all
      select '1' as flow_out_id,'4' as flow_in_id
      union all
      select 'a' as flow_out_id,'b' as flow_in_id
      union all
      select 'b' as flow_out_id,'c' as flow_in_id
    )tmp;
    drop table if exists MaximalConnectedComponent_func_test_result;
    create table MaximalConnectedComponent_func_test_result
    (
      node string,
      grp_id string
    );

    データ構造

    image

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

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

    | node1 | grp_id |
    | ----- | ------ |
    | a     | c      |
    | b     | c      |
    | c     | c      |
    | 1     | 4      |
    | 2     | 4      |
    | 3     | 4      |
    | 4     | 4      |