本文整理汇总了Python中sandbox.util.SparseUtils.SparseUtils.svdSoft方法的典型用法代码示例。如果您正苦于以下问题:Python SparseUtils.svdSoft方法的具体用法?Python SparseUtils.svdSoft怎么用?Python SparseUtils.svdSoft使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sandbox.util.SparseUtils.SparseUtils
的用法示例。
在下文中一共展示了SparseUtils.svdSoft方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testSvdSoft
# 需要导入模块: from sandbox.util.SparseUtils import SparseUtils [as 别名]
# 或者: from sandbox.util.SparseUtils.SparseUtils import svdSoft [as 别名]
def testSvdSoft(self):
A = scipy.sparse.rand(10, 10, 0.2)
A = A.tocsc()
lmbda = 0.2
U, s, V = SparseUtils.svdSoft(A, lmbda)
ATilde = U.dot(numpy.diag(s)).dot(V.T)
#Now compute the same matrix using numpy
A = A.todense()
U2, s2, V2 = numpy.linalg.svd(A)
inds = numpy.flipud(numpy.argsort(s2))
inds = inds[s2[inds] > lmbda]
U2, s2, V2 = Util.indSvd(U2, s2, V2, inds)
s2 = s2 - lmbda
s2 = numpy.clip(s, 0, numpy.max(s2))
ATilde2 = U2.dot(numpy.diag(s2)).dot(V2.T)
nptst.assert_array_almost_equal(s, s)
nptst.assert_array_almost_equal(ATilde, ATilde2)
#Now run svdSoft with a numpy array
U3, s3, V3 = SparseUtils.svdSoft(A, lmbda)
ATilde3 = U.dot(numpy.diag(s)).dot(V.T)
nptst.assert_array_almost_equal(s, s3)
nptst.assert_array_almost_equal(ATilde3, ATilde2)