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

Platform For AI:頂点クラスタリング係数

最終更新日:Jul 22, 2024

頂点クラスタリング係数は、無向グラフの頂点が一緒にクラスタリングする傾向がある程度の尺度であり、密度を示します。 頂点クラスタリング係数を使用して、さまざまなグループの密度を比較し、グループの最大密度を推定できます。 頂点クラスタリング係数成分は、隣接する頂点の数、密度、および隣接する対の数を提供することができる。

アルゴリズムの説明

頂点クラスタリング係数は、無向グラフにおける頂点の周辺密度を計算するために使用される。 星型ネットワークの密度は0であり、完全にメッシュ化されたネットワークの密度は1である。

コンポーネントの設定

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

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

タブ

パラメーター

説明

フィールド設定

Vertexを開始

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

エンド頂点

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

パラメーター設定

最大頂点度

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

チューニング

労働者

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

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

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

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

データ分割サイズ (MB)

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

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

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

PAI -name NodeDensity
    -project algo_public
    -DinputEdgeTableName=NodeDensity_func_test_edge
    -DfromVertexCol=flow_out_id
    -DtoVertexCol=flow_in_id
    -DoutputTableName=NodeDensity_func_test_result
    -DmaxEdgeCnt=500;

パラメーター

必須

デフォルト値

説明

inputEdgeTableName

デフォルト値なし

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

inputEdgeTablePartitions

不可

フルテーブル

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

fromVertexCol

デフォルト値なし

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

toVertexCol

デフォルト値なし

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

outputTableName

デフォルト値なし

出力テーブルの名前。

outputTablePartitions

不可

デフォルト値なし

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

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

不可

デフォルト値なし

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

maxEdgeCnt

不可

500

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

workerNum

不可

デフォルト値なし

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

workerMem

不可

4096

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

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

splitSize

不可

64

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

例:

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

    NodeDensity_func_test_edgeが存在する場合は、テーブルを削除

    drop table if exists NodeDensity_func_test_edge;
    create table NodeDensity_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 NodeDensity_func_test_result;
    create table NodeDensity_func_test_result
    (
      node string,
      node_cnt bigint,
      edge_cnt bigint,
      density double,
      log_density double
    );

    データ構造

    image

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

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

    drop table if exists ${o1};
    PAI -name NodeDensity
        -project algo_public
        -DinputEdgeTableName=NodeDensity_func_test_edge
        -DfromVertexCol=flow_out_id
        -DtoVertexCol=flow_in_id
        -DoutputTableName=${o1}
        -DmaxEdgeCnt=500;