全部产品
Search
文档中心

Platform For AI:Label Propagation Clustering

更新时间:Jul 02, 2025

Algoritma propagasi label (LPA) adalah algoritma pembelajaran mesin semi-supervisi. Label (komunitas) sebuah simpul bergantung pada label simpul-simpul tetangganya, dengan tingkat ketergantungan ditentukan oleh kesamaan antar simpul. Data menjadi stabil melalui pembaruan propagasi secara iteratif. Komponen Label Propagation Clustering menghasilkan kelompok untuk setiap simpul setelah semua simpul dalam graf konvergen.

Deskripsi Algoritma

  • Pengelompokan graf digunakan untuk membagi graf menjadi subgraf berdasarkan topologi graf, di mana tautan antara simpul dalam subgraf lebih banyak dibandingkan tautan antar subgraf.

  • Algoritma ini menginisialisasi setiap simpul dengan label unik, mengiterasi simpul, dan menetapkan label yang paling sering muncul di antara simpul tetangganya dalam komunitas. Proses berhenti ketika setiap simpul memiliki label yang paling sering muncul di antara tetangganya.

Konfigurasi Komponen

Metode 1: Konfigurasikan komponen pada halaman pipeline

Anda dapat menambahkan komponen Label Propagation Clustering pada halaman pipeline Machine Learning Designer di konsol Platform for AI (PAI). Tabel berikut menjelaskan parameter-parameter tersebut.

Tab

Parameter

Deskripsi

Fields Setting

Vertex Table: Vertex Column

Kolom simpul dalam tabel simpul.

Vertex Table: Weight Column

Kolom bobot simpul dalam tabel simpul.

Edge Table: Source Vertex Column

Kolom simpul awal dalam tabel sisi.

Edge Table: Target Vertex Column

Kolom simpul tujuan dalam tabel sisi.

Edge Table: Weight Column

Kolom bobot sisi dalam tabel sisi.

Parameters Setting

Maximum Iterations

Jumlah maksimum iterasi. Nilai default: 30.

Tuning

Workers

Jumlah simpul untuk eksekusi pekerjaan paralel. Tingkat paralelisme dan biaya komunikasi kerangka meningkat seiring dengan nilai parameter ini.

Memory Size per Worker (MB)

Ukuran maksimum memori yang dapat digunakan oleh satu pekerjaan. Unit: MB. Nilai default: 4096.

Jika ukuran memori yang digunakan melebihi nilai parameter ini, kesalahan OutOfMemory akan dilaporkan.

Metode 2: Konfigurasikan komponen menggunakan perintah PAI

Anda dapat mengonfigurasi komponen Label Propagation Clustering menggunakan perintah PAI. Gunakan komponen SQL Script untuk menjalankan perintah PAI. Untuk informasi lebih lanjut, lihat Skenario 4: Jalankan perintah PAI dalam komponen SQL script dalam topik "SQL Script".

PAI -name LabelPropagationClustering
    -project algo_public
    -DinputEdgeTableName=LabelPropagationClustering_func_test_edge
    -DfromVertexCol=flow_out_id
    -DtoVertexCol=flow_in_id
    -DinputVertexTableName=LabelPropagationClustering_func_test_node
    -DvertexCol=node
    -DoutputTableName=LabelPropagationClustering_func_test_result
    -DhasEdgeWeight=true
    -DedgeWeightCol=edge_weight
    -DhasVertexWeight=true
    -DvertexWeightCol=node_weight
    -DrandSelect=true
    -DmaxIter=100;

Parameter

Diperlukan

Nilai default

Deskripsi

inputEdgeTableName

Ya

Tidak ada nilai default

Nama tabel sisi input.

inputEdgeTablePartitions

Tidak

Tabel lengkap

Partisi dalam tabel sisi input.

fromVertexCol

Ya

Tidak ada nilai default

Kolom simpul awal dalam tabel sisi input.

toVertexCol

Ya

Tidak ada nilai default

Kolom simpul tujuan dalam tabel sisi input.

inputVertexTableName

Ya

Tidak ada nilai default

Nama tabel simpul input.

inputVertexTablePartitions

Tidak

Tabel lengkap

Partisi dalam tabel simpul input.

vertexCol

Ya

Tidak ada nilai default

Kolom simpul dalam tabel simpul input.

outputTableName

Ya

Tidak ada nilai default

Nama tabel output.

outputTablePartitions

Tidak

Tidak ada nilai default

Partisi dalam tabel output.

lifecycle

Tidak

Tidak ada nilai default

Siklus hidup tabel output.

workerNum

Tidak

Tidak ada nilai default

Jumlah simpul untuk eksekusi pekerjaan paralel. Tingkat paralelisme dan biaya komunikasi kerangka meningkat seiring dengan nilai parameter ini.

workerMem

Tidak

4096

Ukuran maksimum memori yang dapat digunakan oleh satu pekerjaan. Unit: MB. Nilai default: 4096.

Jika ukuran memori yang digunakan melebihi nilai parameter ini, kesalahan OutOfMemory akan dilaporkan.

splitSize

Tidak

64

Ukuran pemisahan data. Unit: MB.

hasEdgeWeight

Tidak

false

Menentukan apakah sisi dalam tabel sisi input memiliki bobot.

edgeWeightCol

Tidak

Tidak ada nilai default

Kolom bobot sisi dalam tabel sisi input.

hasVertexWeight

Tidak

false

Menentukan apakah simpul dalam tabel simpul input memiliki bobot.

vertexWeightCol

Tidak

Tidak ada nilai default

Kolom bobot simpul dalam tabel simpul input.

randSelect

Tidak

false

Menentukan apakah nilai label maksimum dipilih secara acak.

maxIter

Tidak

30

Jumlah maksimum iterasi.

Contoh

  1. Tambahkan komponen SQL Script sebagai simpul ke kanvas dan jalankan pernyataan SQL berikut untuk menghasilkan data pelatihan.

    drop table if exists LabelPropagationClustering_func_test_edge;
    create table LabelPropagationClustering_func_test_edge as
    select * from
    (
        select '1' as flow_out_id,'2' as flow_in_id,0.7 as edge_weight
        union all
        select '1' as flow_out_id,'3' as flow_in_id,0.7 as edge_weight
        union all
        select '1' as flow_out_id,'4' as flow_in_id,0.6 as edge_weight
        union all
        select '2' as flow_out_id,'3' as flow_in_id,0.7 as edge_weight
        union all
        select '2' as flow_out_id,'4' as flow_in_id,0.6 as edge_weight
        union all
        select '3' as flow_out_id,'4' as flow_in_id,0.6 as edge_weight
        union all
        select '4' as flow_out_id,'6' as flow_in_id,0.3 as edge_weight
        union all
        select '5' as flow_out_id,'6' as flow_in_id,0.6 as edge_weight
        union all
        select '5' as flow_out_id,'7' as flow_in_id,0.7 as edge_weight
        union all
        select '5' as flow_out_id,'8' as flow_in_id,0.7 as edge_weight
        union all
        select '6' as flow_out_id,'7' as flow_in_id,0.6 as edge_weight
        union all
        select '6' as flow_out_id,'8' as flow_in_id,0.6 as edge_weight
        union all
        select '7' as flow_out_id,'8' as flow_in_id,0.7 as edge_weight
    )tmp
    ;
    drop table if exists LabelPropagationClustering_func_test_node;
    create table LabelPropagationClustering_func_test_node as
    select * from
    (
        select '1' as node,0.7 as node_weight
        union all
        select '2' as node,0.7 as node_weight
        union all
        select '3' as node,0.7 as node_weight
        union all
        select '4' as node,0.5 as node_weight
        union all
        select '5' as node,0.7 as node_weight
        union all
        select '6' as node,0.5 as node_weight
        union all
        select '7' as node,0.7 as node_weight
        union all
        select '8' as node,0.7 as node_weight
    )tmp;

    Struktur data

    image

  2. Tambahkan komponen SQL Script sebagai simpul ke kanvas dan jalankan perintah PAI berikut untuk melatih model.

    drop table if exists ${o1};
    PAI -name LabelPropagationClustering
        -project algo_public
        -DinputEdgeTableName=LabelPropagationClustering_func_test_edge
        -DfromVertexCol=flow_out_id
        -DtoVertexCol=flow_in_id
        -DinputVertexTableName=LabelPropagationClustering_func_test_node
        -DvertexCol=node
        -DoutputTableName=${o1}
        -DhasEdgeWeight=true
        -DedgeWeightCol=edge_weight
        -DhasVertexWeight=true
        -DvertexWeightCol=node_weight
        -DrandSelect=true
        -DmaxIter=100;
  3. Klik kanan komponen SQL Script dan pilih View Data > SQL Script Output untuk melihat hasil pelatihan.

    | node | group_id |
    | ---- | -------- |
    | 1    | 3        |
    | 3    | 3        |
    | 5    | 7        |
    | 7    | 7        |
    | 2    | 3        |
    | 4    | 3        |
    | 6    | 7        |
    | 8    | 7        |