All Products
Search
Document Center

Platform For AI:Dekomposisi nilai singular

Last Updated:Apr 02, 2026

Dekomposisi nilai singular (Singular Value Decomposition/SVD) adalah teknik faktorisasi matriks dalam aljabar linear—merupakan generalisasi dari diagonalisasi matriks normal—yang mengurai matriks X menjadi tiga komponen: X = U S V'. SVD banyak digunakan dalam pemrosesan sinyal dan statistik.

Cara kerja

SVD memfaktorkan matriks input X (berukuran m baris × n kolom) menjadi tiga matriks output:

OutputDimensiDeskripsi
Um × sgNumVektor singular kiri (matriks uniter)
SsgNum × sgNumMatriks diagonal berisi nilai-nilai singular (matriks hamburan)
Vn × sgNumVektor singular kanan (matriks V)

Di sini, sgNum adalah jumlah nilai singular yang benar-benar dihitung (yang mungkin kurang dari nilai k yang diminta), m adalah jumlah baris pada tabel input, dan n adalah jumlah kolom.

Konfigurasikan komponen

Gunakan Konsol Machine Learning Platform for AI

TabParameterDeskripsi
Fields settingFeature columnsKolom yang menyimpan pasangan kunci-nilai. Pisahkan kunci dan nilai dengan tanda titik dua (:), dan pisahkan beberapa pasangan kunci-nilai dengan koma (,).
Parameters settingNumber of reserved singular valuesN nilai singular teratas yang akan dihitung. Secara default menghitung semua nilai singular.
Parameters settingAccuracy errorPresisi kesalahan yang diperbolehkan untuk konvergensi.
TuningMemory size per nodeMemori yang dialokasikan untuk setiap node, dalam MB. Harus digunakan bersama dengan Number of nodes. Nilai valid: 1–9999 (bilangan bulat positif).
TuningNumber of nodesJumlah node komputasi. Nilai valid: 1024–64 × 1024 (bilangan bulat positif).
TuningLifetimeSiklus hidup tabel output, dalam hari.

Gunakan perintah

Kirim pekerjaan SVD dari command line:

PAI -name svd
    -project algo_public
    -DinputTableName=bank_data
    -DselectedColNames=col0
    -DenableSparse=true
    -Dk=5
    -DoutputUTableName=u_table
    -DoutputVTableName=v_table
    -DoutputSTableName=s_table;

Parameter input

ParameterWajibDefaultDeskripsi
inputTableNameYaTabel input yang digunakan untuk pelatihan.
selectedColNamesTidakSemua kolomDaftar kolom yang dipisahkan koma untuk disertakan. Gunakan kolom STRING untuk input sparse; gunakan kolom INT atau DOUBLE untuk input dense.
inputTablePartitionsTidakSemua partisiPartisi yang dibaca dari tabel input. Format: partition_name=value. Untuk partisi multi-level: name1=value1/name2=value2;. Pisahkan beberapa partisi dengan koma.
enableSparseTidakfalseAtur ke true jika data input dalam format sparse key-value.
itemDelimiterTidakSpasiPemisah antar pasangan kunci-nilai dalam format sparse.
kvDelimiterTidak:Pemisah antara kunci dan nilai dalam format sparse.
kYaJumlah nilai singular yang akan dihitung. Jumlah aktual yang dikembalikan mungkin kurang dari k.
tolTidak1.0e-06Ambang kesalahan konvergensi.

Parameter output

ParameterWajibDeskripsi
outputUTableNameYaTabel output untuk matriks U (m × sgNum).
outputSTableNameYaTabel output untuk matriks S (sgNum × sgNum).
outputVTableNameYaTabel output untuk matriks V (n × sgNum).

Parameter sumber daya

ParameterWajibDefaultDeskripsi
coreNumTidakDefault sistemJumlah core. Harus digunakan bersama dengan memSizePerCore. Nilai valid: 1–9999 (bilangan bulat positif).
memSizePerCoreTidakDefault sistemMemori per core, dalam MB. Harus digunakan bersama dengan coreNum. Nilai valid: 1024–64 × 1024 (bilangan bulat positif).
lifecycleTidakSiklus hidup tabel output, dalam hari (bilangan bulat positif).

Contoh

Contoh ini menjalankan SVD pada tabel input sparse dengan enam baris dan hingga 100.000 kolom, serta menghitung lima nilai singular teratas.

Langkah 1: Buat tabel input.

DROP TABLE IF EXISTS svd_test_input;
CREATE TABLE svd_test_input
AS
SELECT *
FROM
(
  SELECT '0:3.9079 2:0.0009 3:0.0416 4:0.17664 6:0.36460 8:0.091330' AS col0
  UNION ALL
  SELECT '0:0.09229 2:0.4872172 5:0.5267 8:0.4544 9:0.23317' AS col0
  UNION ALL
  SELECT '1:0.8312 3:0.9317 5:0.5680 7:0.5560 9:0.0508' AS col0
  UNION ALL
  SELECT '2:0.767 5:0.01891 8:0.25235' AS col0
  UNION ALL
  SELECT '0:0.29819 2:0.87598086 6:0.5315568' AS col0
  UNION ALL
  SELECT '0:0.920260 2:0.5154311513 4:0.8104 5:0.188420 8:0.88' AS col0
) a;

Langkah 2: Jalankan pekerjaan SVD.

PAI -name svd
    -project algo_public
    -DinputTableName=svd_test_input
    -DselectedColNames=col0
    -DenableSparse=true
    -Dk=5
    -DoutputUTableName=u_table
    -DoutputVTableName=v_table
    -DoutputSTableName=s_table;