全部产品
Search
文档中心

Platform For AI:Label Propagation Classification

更新时间:Jul 02, 2025

Label Propagation Classification adalah algoritma pembelajaran semi-terawasi yang dirancang untuk menyebarkan informasi label antara titik data berlabel dan tidak berlabel menggunakan struktur graf. Algoritma ini membangun graf berdasarkan kesamaan antar titik data dan secara iteratif memperbarui distribusi label dari node hingga mencapai konvergensi. Dengan menggunakan informasi dari sejumlah kecil sampel berlabel, algoritma ini mampu memperluas klasifikasi ke seluruh dataset, sehingga meningkatkan performa klasifikasi.

Deskripsi Algoritma

Ketika sistem menjalankan algoritma Label Propagation Classification, label setiap vertex disebarkan ke vertex tetangga berdasarkan kesamaan. Pada setiap langkah penyebaran, setiap vertex memperbarui labelnya berdasarkan label dari vertex tetangganya. Semakin tinggi kesamaan, semakin besar pengaruh penandaan dari vertex tetangga terhadap vertex tersebut. Selama proses penyebaran, label dari data berlabel tetap tidak berubah dan berfungsi sebagai sumber untuk penyebaran ke data tidak berlabel. Setelah iterasi selesai, distribusi probabilitas dari vertex serupa cenderung menjadi serupa, sehingga vertex dapat diklasifikasikan ke dalam kategori yang sama.

Konfigurasikan Komponen

Metode 1: Konfigurasikan komponen di halaman pipeline

Anda dapat menambahkan komponen Label Propagation Classification di halaman pipeline Machine Learning Designer dalam konsol Platform for AI (PAI). Tabel berikut menggambarkan parameter yang digunakan.

Tab

Parameter

Deskripsi

Fields Setting

Vertex Table: Vertex Column

Kolom vertex dalam tabel vertex.

Vertex Table: Label Column

Kolom label vertex dalam tabel vertex.

Vertex Table: Weight Column

Kolom bobot vertex dalam tabel vertex.

Edge Table: Source Vertex Column

Kolom vertex awal dalam tabel edge.

Edge Table: Target Vertex Column

Kolom vertex tujuan dalam tabel edge.

Edge Table: Select Weight Column

Kolom bobot edge dalam tabel edge.

Parameters Setting

Maximum Number of Iterations

Jumlah maksimum iterasi. Nilai default: 30.

Damping Coefficient

Koefisien redaman. Nilai default: 0.8.

Convergence Coefficient

Koefisien konvergensi. Nilai default: 0.000001.

Tuning

Number of Workers

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

Worker Memory (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 dilaporkan.

Metode 2: Konfigurasikan komponen menggunakan perintah PAI

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

PAI -name LabelPropagationClassification
    -project algo_public
    -DinputEdgeTableName=LabelPropagationClassification_func_test_edge
    -DfromVertexCol=flow_out_id
    -DtoVertexCol=flow_in_id
    -DinputVertexTableName=LabelPropagationClassification_func_test_node
    -DvertexCol=node
    -DvertexLabelCol=label
    -DoutputTableName=LabelPropagationClassification_func_test_result
    -DhasEdgeWeight=true
    -DedgeWeightCol=edge_weight
    -DhasVertexWeight=true
    -DvertexWeightCol=label_weight
    -Dalpha=0.8
    -Depsilon=0.000001;

Parameter

Diperlukan

Nilai Default

Deskripsi

inputEdgeTableName

Ya

Tidak ada nilai default

Nama tabel edge input.

inputEdgeTablePartitions

Tidak

Tabel penuh

Partisi dalam tabel edge input.

fromVertexCol

Ya

Tidak ada nilai default

Kolom vertex awal dalam tabel edge input.

toVertexCol

Ya

Tidak ada nilai default

Kolom vertex tujuan dalam tabel edge input.

inputVertexTableName

Ya

Tidak ada nilai default

Nama tabel vertex input.

inputVertexTablePartitions

Tidak

Tabel penuh

Partisi dalam tabel vertex input.

vertexCol

Ya

Tidak ada nilai default

Kolom vertex dalam tabel vertex 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 vertex untuk eksekusi pekerjaan paralel. Tingkat paralelisme dan biaya komunikasi kerangka meningkat 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 dilaporkan.

splitSize

Tidak

64

Ukuran pemisahan data. Unit: MB.

hasEdgeWeight

Tidak

false

Menentukan apakah edge dalam tabel edge input memiliki bobot.

edgeWeightCol

Tidak

Tidak ada nilai default

Kolom bobot edge dalam tabel edge input.

hasVertexWeight

Tidak

false

Menentukan apakah vertex dalam tabel vertex input memiliki bobot.

vertexWeightCol

Tidak

Tidak ada nilai default

Kolom bobot vertex dalam tabel vertex input.

alpha

Tidak

0.8

Koefisien redaman.

epsilon

Tidak

0.000001

Koefisien konvergensi.

maxIter

Tidak

30

Jumlah maksimum iterasi.

Contoh

  1. Tambahkan komponen SQL Script. Hilangkan centang pada Use Script Mode dan Whether the system adds a create table statement. Kemudian, masukkan pernyataan SQL berikut.

    drop table if exists LabelPropagationClassification_func_test_edge;
    create table LabelPropagationClassification_func_test_edge as
    select * from
    (
        select 'a' as flow_out_id, 'b' as flow_in_id, 0.2 as edge_weight
        union all
        select 'a' as flow_out_id, 'c' as flow_in_id, 0.8 as edge_weight
        union all
        select 'b' as flow_out_id, 'c' as flow_in_id, 1.0 as edge_weight
        union all
        select 'd' as flow_out_id, 'b' as flow_in_id, 1.0 as edge_weight
    )tmp
    ;
    drop table if exists LabelPropagationClassification_func_test_node;
    create table LabelPropagationClassification_func_test_node as
    select * from
    (
        select 'a' as node,'X' as label, 1.0 as label_weight
        union all
        select 'd' as node,'Y' as label, 1.0 as label_weight
    )tmp;

    Struktur Data

    image

  2. Tambahkan komponen SQL Script lainnya. Hilangkan centang pada Use Script Mode dan Whether the system adds a create table statement. Masukkan pernyataan SQL berikut dan hubungkan kedua komponen pada langkah 1 dan 2.

    drop table if exists ${o1};
    PAI -name LabelPropagationClassification
        -project algo_public
        -DinputEdgeTableName=LabelPropagationClassification_func_test_edge
        -DfromVertexCol=flow_out_id
        -DtoVertexCol=flow_in_id
        -DinputVertexTableName=LabelPropagationClassification_func_test_node
        -DvertexCol=node
        -DvertexLabelCol=label
        -DoutputTableName=${o1}
        -DhasEdgeWeight=true
        -DedgeWeightCol=edge_weight
        -DhasVertexWeight=true
        -DvertexWeightCol=label_weight
        -Dalpha=0.8
        -Depsilon=0.000001;
  3. Klik image di sudut kiri atas untuk menjalankan pipeline.

  4. Klik kanan komponen SQL Script pada langkah 2 dan pilih View Data > SQL Script Output untuk melihat hasil pelatihan.

    | node | tag | weight              |
    | ---- | --- | ------------------- |
    | a    | X   | 1.0                 |
    | c    | X   | 0.5370370370370371  |
    | c    | Y   | 0.4629629629629629  |
    | b    | X   | 0.16666666666666666 |
    | b    | Y   | 0.8333333333333333  |
    | d    | Y   | 1.0                 |