Orijinal verilerimde satırlardan (kullanıcılar) çok daha fazla sütun (özellik) var. SVD'min özelliklerini azaltmaya çalışıyorum (tüm satırlara ihtiyacım var). Bunu yapmanın bir yöntemini "Makine Öğrenimi Eylemde" adlı bir kitapta buldum, ancak kullandığım veriler için işe yarayacağını düşünmüyorum.
Yöntem aşağıdaki gibidir. SVD'yi $$ A = USV ^ \ top olarak tanımlayın. $$
Bir optimizasyon eşiği ayarlayın (yani% 90). Köşegen $ S $ matrisinin karelerinin toplamını hesaplayın. Toplam kareler toplamının% 90'ına ulaşmak için kaç $ S $ değeri gerektiğini hesaplayın. Yani bu 100 $ S $ değeri çıkarsa, o zaman $ U $ matrisinin ilk 100 sütununu, $ V ^ \ top $ matrisinin ilk 100 satırını ve $ 100 \ times 100 $ kare matrisini alırdım. $ S $ matrisinin dışında. Daha sonra, indirgenmiş matrisleri kullanarak $ A = USV ^ \ top $ 'ı hesaplardım.
Ancak, sonuçta ortaya çıkan $ A $ matrisinin boyutları, öncekiyle aynı. Orijinal matrisimin sütunlarını nasıl hedeflerim?