カウント三角形アルゴリズムは、三角形が3つの相互接続された頂点によって形成される閉ループであるグラフ内の三角形の数を識別してカウントするために使用されるグラフ分析アルゴリズムです。 このアルゴリズムは、主にソーシャルネットワーク分析、ネットワーククラスタリング係数計算、コミュニティ検出などの分野で適用されます。 三角形の数を数えることで、グラフの局所密度とノード間の緊密な接続の程度を評価できます。
コンポーネントの設定
方法1: パイプラインページでコンポーネントを設定する
Machine Learning Designerのパイプラインの詳細ページで、Counting Triangleコンポーネントをパイプラインに追加し、次の表に示すパラメーターを設定します。
タブ | パラメーター | 説明 |
フィールド設定 | Vertexを開始 | エッジテーブルの開始頂点列。 |
エンド頂点 | エッジテーブルの末尾の頂点列。 | |
パラメーター設定 | 最大頂点度 | 頂点次数がこのパラメーターの値より大きい場合、サンプリングが必要です。 デフォルト値: 500。 |
チューニング | 労働者 | 並列ジョブ実行の頂点の数。 並列性とフレームワーク通信コストの程度は、このパラメータの値とともに増加します。 |
Workerあたりのメモリサイズ (MB) | 1つのジョブで使用できるメモリの最大サイズ。 単位:MB。 デフォルト値: 4096 使用済みメモリのサイズがこのパラメーターの値を超えると、 | |
データ分割サイズ (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 使用済みメモリのサイズがこのパラメーターの値を超えると、 |
splitSize | 非対象 | 64 | データ分割サイズ。 単位:MB。 |
例:
パイプラインの詳細ページで、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 );データ構造

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};キャンバスの左上隅で、
をクリックしてパイプラインを実行します。パイプラインの実行後、手順2で追加したコンポーネントを右クリックし、[データの表示] をクリックして、[SQLスクリプト出力] を選択します。
| node1 | node2 | node3 | | ----- | ----- | ----- | | 1 | 2 | 3 | | 1 | 3 | 4 | | 1 | 4 | 5 | | 1 | 5 | 6 | | 5 | 6 | 7 |