Python'da seyrek bir matriste svd işleminin nasıl yapıldığını bilen var mı? Scipy.sparse.linalg'de böyle bir işlevsellik bulunmadığı görülmektedir.python'da seyrek matris svd
6
A
cevap
3
Bunu yapmak için Divisi kitaplığını kullanabilirsiniz; ana sayfasından:
- O Lanczos algoritması kullanılarak seyrek SVD işlemi gerçekleştirmek için bir C kütüphanesi (SVDLIBC) kullanılarak Python ile yazılmış bir kütüphane vardır. Diğer matematiksel hesaplamalar NumPy tarafından gerçekleştirilir.
3
scipy.sparse.linalg.svd belgelerini kullanmaya devam edebilirsiniz, ancak belgeler hala devam eden bir çalışmadır ve bu nedenle daha laconic.
+1
Muhtemelen "svds" denilen yordamı kastediyorsunuz. Denedim ama sonuçlarla kendimden memnun olmadım ... – dividebyzero
4
sparsesvd gibi geliyor! SVDLIBC, Python'a verimli bir şekilde sarılmıştır (RAM'de ekstra veri kopyaları yoktur).
Yüklemek için "easy_install sparsesvd" komutunu çalıştırın.
2
kütüphaneyi kullanan Basit bir örnek:
from recsys.algorithm.factorize import SVD
svd = SVD()
svd.load_data(dataset)
svd.compute(k=100, mean_center=True)
ITEMID1 = 1 # Toy Story
svd.similar(ITEMID1)
# Returns:
# [(1, 1.0), # Toy Story
# (3114, 0.87060391051018071), # Toy Story 2
# (2355, 0.67706936677315799), # A bug's life
# (588, 0.5807351496754426), # Aladdin
# (595, 0.46031829709743477), # Beauty and the Beast
# (1907, 0.44589398718134365), # Mulan
# (364, 0.42908159895574161), # The Lion King
# (2081, 0.42566581277820803), # The Little Mermaid
# (3396, 0.42474056361935913), # The Muppet Movie
# (2761, 0.40439361857585354)] # The Iron Giant
ITEMID2 = 2355 # A bug's life
svd.similarity(ITEMID1, ITEMID2)
# 0.67706936677315799
İlgili konular
- 1. Hesaplayın Seyrek Matris
- 2. R: seyrek matris dönüşümü
- 3. Seyrek bir matrisin satırından seyrek bir köşegen matris oluşturma
- 4. Scikit-öğrenmede DBSCAN seyrek matris kullanabilir mi?
- 5. Matlab'da seyrek bir blok diyagonal matris oluşturma
- 6. Caret'te hangi modeller X için seyrek bir matris kullanabilir?
- 7. NA varsayılan girişleriyle bir Seyrek Matris Oluşturma (ve Erişim)
- 8. seyrek matrisin
- 9. seyrek bir matris vektörlerin kolay örnekleme ve numune yeni bir matris oluşturarak (piton)
- 10. Seyrek matrisler H2O'ya nasıl alınır?
- 11. Nümerik dizi veya pandalarla pythonda rutini sadeleştirme
- 12. Bir matrisin ne kadar seyrek olması, seyrek olarak temsil edilmeye değer mi?
- 13. numpy svd: tam svd yapmak yerine sadece ilk tekil vektörleri bulmanın bir yolu var mı?
- 14. (unchand), (seyrek) matrisler ve haskell vektörel kütüphanesi
- 15. Matris
- 16. Matris kullanılarak Quaternion to Matris
- 17. Seyrek nokta çarpımı SQL
- 18. Seyrek Matrisi Python'dan R
- 19. Seyrek bir matrisi
- 20. Mongodb benzersiz seyrek dizin
- 21. Seyrek dizi sıkıştırma
- 22. THREE.js seyrek düzlemBufferGeometry
- 23. Seyrek Matriste Boyut Azaltma (TSNE/PCA)
- 24. Matris sütun adıyla matris sütun değerlerini ayıkla
- 25. sklearn: Seyrek verilerdeki regresyon modelleri?
- 26. NTFS'de seyrek dosya nasıl oluşturulur?
- 27. Yoğun bir Tensorflow'dan Seyrek Matrix
- 28. Matris çarpımı
- 29. 2d matris
- 30. En küçük kareler yöntemleri: normal denklem vs svd
Eğer şans bitti ve bu ProPack kendin gibi bir Fortran kütüphane sarmak zorunda görünüyor. Ya da Scipy geliştiricilerinin PROPACK tabanlı SVD'yi gelecek sürümde eklemelerini isteyin. – Philipp
Ayrıca C ve C++ sürümleri/arabirimleri olan SVDPACK kitaplığı da vardır. – Philipp