代码之家  ›  专栏  ›  技术社区  ›  tuesday

python中的稀疏矩阵svd

  •  6
  • tuesday  · 技术社区  · 16 年前

    4 回复  |  直到 15 年前
        1
  •  3
  •   ars    16 年前

    你可以用 Divisi 图书馆要做到这一点;从主页:

    • 它是一个用Python编写的库,使用C库(SVDLIBC)使用Lanczos算法执行稀疏SVD操作。其他数学计算由NumPy执行。
        2
  •  4
  •   Radim    15 年前

    sparsesvd 就是你要找的!SVDLIBC有效地包装在Python中(在RAM中没有额外的数据拷贝)。

    只需运行“easy\u install sparsesvd”即可安装。

        3
  •  3
  •   Vedrana Janković    15 年前

    scipy.sparse.linalg.svd ,尽管文档仍在进行中,因此相当简洁。

        4
  •  3
  •   Pedro Romano    13 年前

    一个使用 python-recsys 图书馆:

    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