Algoritma penghitungan segitiga adalah algoritma analisis graf yang digunakan untuk mengidentifikasi dan menghitung jumlah segitiga dalam sebuah graf. Segitiga adalah loop tertutup yang dibentuk oleh tiga simpul yang saling terhubung. Algoritma ini biasa diterapkan dalam bidang seperti analisis jaringan sosial, perhitungan koefisien kluster jaringan, dan deteksi komunitas. Anda dapat menilai kepadatan lokal dari sebuah graf serta tingkat keterhubungan erat antar simpul dengan menghitung jumlah segitiga.
Konfigurasikan komponen
Metode 1: Konfigurasikan komponen pada halaman pipeline
Pada halaman detail pipeline di Machine Learning Designer, tambahkan komponen Counting Triangle ke pipeline dan konfigurasikan parameter sesuai tabel berikut.
Tab | Parameter | Deskripsi |
Fields Setting | Start Vertex | Kolom simpul awal dalam tabel tepi. |
End Vertex | Kolom simpul akhir dalam tabel tepi. | |
Parameters Setting | Largest Vertex Degree | Jika derajat simpul lebih besar dari nilai parameter ini, pengambilan sampel diperlukan. Nilai default: 500. |
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 | |
Data Split Size (MB) | Ukuran pembagian data. Unit: MB. Nilai default: 64. |
Metode 2: Konfigurasikan komponen menggunakan perintah PAI
Konfigurasikan parameter komponen menggunakan perintah PAI. Anda dapat menggunakan komponen SQL Script untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat Skenario 4: Jalankan Perintah PAI dalam Komponen Skrip SQL.
PAI -name TriangleCount
-project algo_public
-DinputEdgeTableName=TriangleCount_func_test_edge
-DfromVertexCol=flow_out_id
-DtoVertexCol=flow_in_id
-DoutputTableName=TriangleCount_func_test_result;Parameter | Diperlukan | Nilai default | Deskripsi |
inputEdgeTableName | Ya | Tidak ada nilai default | Nama tabel tepi input. |
inputEdgeTablePartitions | Tidak | Tabel penuh | Partisi dalam tabel tepi input. |
fromVertexCol | Ya | Tidak ada nilai default | Kolom simpul awal dalam tabel tepi input. |
toVertexCol | Ya | Tidak ada nilai default | Kolom simpul akhir dalam tabel tepi 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. |
maxEdgeCnt | Tidak | 500 | Jika derajat simpul lebih besar dari nilai parameter ini, pengambilan sampel diperlukan. |
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 |
splitSize | Tidak | 64 | Ukuran pembagian data. Unit: MB. |
Contoh
Pada halaman detail pipeline, tambahkan komponen SQL Script ke pipeline dan klik komponen tersebut. Pada tab Parameters Setting, hapus centang pada Use Script Mode dan Whether the system adds a create table statement, lalu masukkan pernyataan SQL berikut di editor SQL Script:
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 );Struktur data

Tambahkan komponen SQL Script ke pipeline dan klik komponen tersebut. Pada tab Parameters Setting, hapus centang pada Use Script Mode dan Whether the system adds a create table statement, lalu masukkan pernyataan SQL berikut di editor SQL Script. Hubungkan komponen ini dengan komponen yang ditambahkan di Langkah 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};Di sudut kiri atas kanvas, klik
untuk menjalankan pipeline.Setelah pipeline dijalankan, klik kanan komponen yang ditambahkan di Langkah 2, pilih View data, lalu pilih SQL Script Output.
| node1 | node2 | node3 | | ----- | ----- | ----- | | 1 | 2 | 3 | | 1 | 3 | 4 | | 1 | 4 | 5 | | 1 | 5 | 6 | | 5 | 6 | 7 |