封装svdlibc的python模块,svdlibc是一个用于稀疏奇异值分解的库。
sparsesvd的Python项目详细描述
sparsesvd是围绕SVDLIBC Doug Rohde的图书馆,它本身基于MichaelBerry的SVDPACK。
sparse svd使用scipy的稀疏csc(压缩稀疏列)矩阵格式作为svd的输入。 这与svdlibc内部使用的格式相同,因此不需要额外的数据拷贝 由python包装器制作(内存高效)。
有关截断svd的更可伸缩的实现,请参见gensim包(包含一个增量的联机svd算法)。
安装
要安装sparsesvd,需要numpy、scipy和cython。
安装sparsesvd及其依赖项:
pip install numpy pip install scipy pip install cython pip install sparsesvd
如果出现问题,请参阅http://www.scipy.org/Download以获取有关安装的说明 在不同的平台上。
如果您已经下载并解压缩了source tar.gz包,请运行:
python setup.py test sudo python setup.py install
这个版本已经在Python2.6和3.2下进行了测试,但是应该在任何 2.x和3.x系列的更高版本。
文档
sparsesvd模块提供一个函数sparsesvd,它接受两个参数。 一个是scipy.sparse.csc_matrix格式的稀疏矩阵,另一个是 请求因子(整数):
>>> import numpy, scipy.sparse >>> from sparsesvd import sparsesvd >>> mat = numpy.random.rand(200, 100) # create a random matrix >>> smat = scipy.sparse.csc_matrix(mat) # convert to sparse CSC format >>> ut, s, vt = sparsesvd(smat, 100) # do SVD, asking for 100 factors >>> assert numpy.allclose(mat, numpy.dot(ut.T, numpy.dot(numpy.diag(s), vt)))
Lubos Kardos提供的原始包装,由Radim Rehurek、Cython和Python 3.x Port由Alejandro Pulver更新和维护的包。有关稀疏svd在潜在语义分析中的应用,请参见gensim包。
您可以在simplified BSD license下使用此代码。