Dekomposisi nilai singular (SVD) adalah teknik dekomposisi matriks yang penting dalam aljabar linear. Teknik ini merupakan generalisasi dari diagonalisasi matriks normal dalam analisis matriks dan banyak digunakan di bidang seperti pemrosesan sinyal dan statistik.
Informasi latar belakang
Rumus untuk dekomposisi nilai singular adalah: X = U S V'.
Konfigurasikan komponen
Anda dapat mengonfigurasi komponen menggunakan salah satu metode berikut:
Gunakan Konsol Machine Learning Platform for AI
Tab
Parameter
Deskripsi
Fields Setting
Feature Columns
Kolom-kolom yang digunakan untuk menyimpan pasangan kunci-nilai. Kunci dan nilai dipisahkan oleh titik dua (:), dan beberapa pasangan kunci-nilai dipisahkan oleh koma (,).
Parameters Setting
Number of Reserved Singular Values
Jumlah N kelompok singular teratas yang ingin Anda dekomposisikan. Secara default, semua kelompok singular didekomposisi.
Accuracy Error
Toleransi kesalahan presisi yang diizinkan.
Tuning
Memory Size per Node
Ukuran memori setiap node. Unit: MB. Parameter ini harus digunakan bersama dengan parameter Jumlah Node. Nilai parameter ini harus berupa bilangan bulat positif. Nilai valid: [1,9999].
Number of Nodes
Nilai parameter ini harus berupa bilangan bulat positif. Nilai valid: [1024,64 × 1024].
Lifetime
Masa hidup tabel output.
Gunakan Perintah
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
Wajib
Deskripsi
Nilai default
inputTableName
Ya
Tabel input yang digunakan untuk pelatihan.
Tidak tersedia
selectedColNames
Tidak
Kolom-kolom yang dipilih dari tabel input untuk pelatihan. Pisahkan kolom dengan koma (,).
Jika matriks jarang digunakan, kolom tipe data STRING didukung. Jika tabel data digunakan, kolom tipe INT dan DOUBLE didukung.
Semua kolom
inputTablePartitions
Tidak
Partisi-partisi yang dipilih dari tabel input untuk pelatihan. Atur parameter ini dalam format
Partition_name=value.Untuk menentukan partisi multi-level, atur parameter ini dalam format
name1=value1/name2=value2;.Jika Anda menentukan beberapa partisi, pisahkan mereka dengan koma (,).
Semua partisi
outputUTableName
Ya
Tabel output dari matriks uniter. Tabel output dihasilkan dari dimensi
m * sgNum. m mewakili jumlah baris tabel data, dan sgNum mewakili jumlah nilai singular yang dihitung.Tidak tersedia
outputSTableName
Ya
Tabel output dari matriks pencar (S-matriks). Tabel output dihasilkan dari dimensi
sgNum * sgNum. sgNum mewakili jumlah nilai singular yang dihitung.Tidak tersedia
outputVTableName
Ya
Tabel output dari matriks V. Tabel output dihasilkan dari dimensi
n * sgNum. n mewakili jumlah kolom matriks, dan sgNum mewakili jumlah nilai singular yang dihitung.Tidak tersedia
k
Ya
Jumlah nilai singular yang diharapkan.
Jumlah nilai singular yang dihasilkan mungkin berupa bilangan bulat positif kurang dari nilai yang ditentukan oleh parameter k.
Tidak tersedia
tol
Tidak
Kesalahan konvergensi.
1.0e~06
enableSparse
Tidak
Menentukan apakah data dalam tabel input berada dalam format jarang. Nilai valid:
true
false
false
itemDelimiter
Tidak
Pemisah yang digunakan untuk memisahkan pasangan kunci-nilai ketika data dalam tabel input berada dalam format jarang.
Spasi
kvDelimiter
Tidak
Pemisah yang digunakan untuk memisahkan kunci dan nilai ketika data dalam tabel input berada dalam format jarang.
:
coreNum
Tidak
Jumlah core. Parameter ini harus digunakan bersama dengan parameter memSizePerCore. Nilai parameter ini harus berupa bilangan bulat positif. Nilai valid: [1,9999].
Ditetapkan oleh sistem
memSizePerCore
Tidak
Ukuran memori setiap core. Unit: MB. Nilai parameter ini harus berupa bilangan bulat positif. Nilai valid: [1024,64 × 1024].
Ditetapkan oleh sistem
lifecycle
Tidak
Masa hidup tabel output. Nilai harus berupa bilangan bulat positif.
Tidak tersedia
Contoh
Hasilkan Data 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;Jalankan Perintah
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;Skala Analisis: 100.000 kolom