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

Platform For AI:三角形を数える

最終更新日:Jan 20, 2025

カウント三角形アルゴリズムは、三角形が3つの相互接続された頂点によって形成される閉ループであるグラフ内の三角形の数を識別してカウントするために使用されるグラフ分析アルゴリズムです。 このアルゴリズムは、主にソーシャルネットワーク分析、ネットワーククラスタリング係数計算、コミュニティ検出などの分野で適用されます。 三角形の数を数えることで、グラフの局所密度とノード間の緊密な接続の程度を評価できます。

コンポーネントの設定

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

Machine Learning Designerのパイプラインの詳細ページで、Counting Triangleコンポーネントをパイプラインに追加し、次の表に示すパラメーターを設定します。

タブ

パラメーター

説明

フィールド設定

Vertexを開始

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

エンド頂点

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

パラメーター設定

最大頂点度

頂点次数がこのパラメーターの値より大きい場合、サンプリングが必要です。 デフォルト値: 500。

チューニング

労働者

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

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

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

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

データ分割サイズ (MB)

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

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

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

PAI -name TriangleCount
    -project algo_public
    -DinputEdgeTableName=TriangleCount_func_test_edge
    -DfromVertexCol=flow_out_id
    -DtoVertexCol=flow_in_id
    -DoutputTableName=TriangleCount_func_test_result;

パラメーター

必須 / 任意

デフォルト値

説明

inputEdgeTableName

対象

デフォルト値なし

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

inputEdgeTablePartitions

非対象

フルテーブル

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

fromVertexCol

対象

デフォルト値なし

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

toVertexCol

対象

デフォルト値なし

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

outputTableName

対象

デフォルト値なし

出力テーブルの名前。

outputTablePartitions

非対象

デフォルト値なし

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

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

非対象

デフォルト値なし

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

maxEdgeCnt

非対象

500

頂点次数がこのパラメーターの値より大きい場合、サンプリングが必要です。

workerNum

非対象

デフォルト値なし

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

workerMem

非対象

4096

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

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

splitSize

非対象

64

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

例:

  1. パイプラインの詳細ページで、SQL Scriptコンポーネントをパイプラインに追加し、そのコンポーネントをクリックします。 [パラメーター設定] タブで、[スクリプトモードの使用] および [テーブル作成ステートメントを追加するかどうか] をオフにし、[SQLスクリプト] エディターに次のSQLステートメントを入力します。

    drop table if exists TriangleCount_func_test_edge;
    create table TriangleCount_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 '1' as flow_out_id,'5' as flow_in_id
      union all
      select '1' as flow_out_id,'6' 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 '4' as flow_out_id,'5' as flow_in_id
      union all
      select '5' as flow_out_id,'6' as flow_in_id
      union all
      select '5' as flow_out_id,'7' as flow_in_id
      union all
      select '6' as flow_out_id,'7' as flow_in_id
    )tmp;
    drop table if exists TriangleCount_func_test_result;
    create table TriangleCount_func_test_result
    (
      node1 string,
      node2 string,
      node3 string
    );

    データ構造

    image

  2. SQL Scriptコンポーネントをパイプラインに追加し、そのコンポーネントをクリックします。 [パラメーター設定] タブで、[スクリプトモードの使用][テーブル作成ステートメントを追加するかどうか] をオフにし、[SQLスクリプト] エディターに次のSQLステートメントを入力します。 このコンポーネントをステップ1で追加したコンポーネントと接続します。

    drop table if exists ${o1};
    PAI -name TriangleCount
        -project algo_public
        -DinputEdgeTableName=TriangleCount_func_test_edge
        -DfromVertexCol=flow_out_id
        -DtoVertexCol=flow_in_id
        -DoutputTableName=${o1};
  3. キャンバスの左上隅で、imageをクリックしてパイプラインを実行します。

  4. パイプラインの実行後、手順2で追加したコンポーネントを右クリックし、[データの表示] をクリックして、[SQLスクリプト出力] を選択します。

    | node1 | node2 | node3 |
    | ----- | ----- | ----- |
    | 1     | 2     | 3     |
    | 1     | 3     | 4     |
    | 1     | 4     | 5     |
    | 1     | 5     | 6     |
    | 5     | 6     | 7     |