This was rejected because attachments were > 40K What's the preferred way to pass random/tmp files?
---------- Forwarded message ---------- From: Timmy Wilson <[email protected]> Date: Fri, Dec 9, 2011 at 8:57 AM Subject: Re: [Scikit-learn-general] RuntimeError: Factor is exactly singular To: [email protected] the eigen_solver='dense' option eliminates the error, but the results look different i attached the offending input (an adjacency matrix from twitter), and the results of hessian w/ the dense option and standard w/ 30 neighbors On Thu, Dec 8, 2011 at 11:19 PM, Jacob VanderPlas <[email protected]> wrote: > Timmy, > Interesting... this means that none of the earlier ideas were on the > right track, or else we'd see the same error for standard and modified. > It turns out that Hessian and LTSA do very similar things. I still > haven't wrapped my mind around it intuitively, but what you're seeing > probably means that the hessian estimator is identical in two > neighborhoods. I'm confused by the fact that adding noise and changing > the number of neighbors is not affecting things... > > Can you try using eigen_solver='dense' (that should get around the > problem, though it will be slow) and taking a look at the results to see > if they're anywhere close to what standard and modified LLE give you? > Jake > > Timmy Wilson wrote: >> 'standard' + 'modified' both work fine >> >> 'hessian' + 'ltsa' both have issues >> >> ltsa is printing: >> >> RuntimeWarning: Diagonal number 2 is exactly zero. Singular matrix. >> >> and then setting everything to -nan >> >> i tried adding random noise and increasing n_neighbors -- but no dice >> >> Fabian's suggestion is still under review -- >> https://github.com/scikit-learn/scikit-learn/pull/457 >> >> >> >> On Thu, Dec 8, 2011 at 11:39 AM, Fabian Pedregosa >> <[email protected]> wrote: >> >>> I reduced the problem to a difference of results with eigsh when >>> working in shift-invert mode and when not. Notice that the following >>> works with sigma=None but not with sigma=0. , thus seems to me that we >>> should fall back to non invert-mode for singular matrices (see >>> asociated pull request). >>> >>> ``` >>> In [8]: M = sparse.csr_matrix([[1, 1, 1], [1, 1, 1], [1, 1, 1.]]) >>> >>> In [9]: linalg.eigsh(M, 1) >>> Out[9]: >>> (array([ 3.]), >>> array([[-0.57735027], >>> [-0.57735027], >>> [-0.57735027]])) >>> >>> In [10]: linalg.eigsh(M, 1, sigma=0.) >>> --------------------------------------------------------------------------- >>> RuntimeError Traceback (most recent call last) >>> /home/fabian/dev/sandbox/<ipython-input-10-f646f5be93ec> in <module>() >>> ----> 1 linalg.eigsh(M, 1, sigma=0.) >>> >>> /home/fabian/envs/p26/lib/python2.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.pyc >>> in eigsh(A, k, M, sigma, which, v0, ncv, maxiter, tol, >>> return_eigenvectors, Minv, OPinv, mode) >>> 1484 if OPinv is None: >>> 1485 Minv_matvec = get_OPinv_matvec(A, M, sigma, >>> -> 1486 symmetric=True, >>> tol=tol) >>> 1487 else: >>> 1488 OPinv = _aslinearoperator_with_dtype(OPinv) >>> >>> /home/fabian/envs/p26/lib/python2.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.pyc >>> in get_OPinv_matvec(A, M, sigma, symmetric, tol) >>> 1004 def get_OPinv_matvec(A, M, sigma, symmetric=False, tol=0): >>> 1005 if sigma == 0: >>> -> 1006 return get_inv_matvec(A, symmetric=symmetric, tol=tol) >>> 1007 >>> 1008 if M is None: >>> >>> /home/fabian/envs/p26/lib/python2.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.pyc >>> in get_inv_matvec(M, symmetric, tol) >>> 997 if isspmatrix_csr(M) and symmetric: >>> 998 M = M.T >>> --> 999 return SpLuInv(M).matvec >>> 1000 else: >>> 1001 return IterInv(M, tol=tol).matvec >>> >>> /home/fabian/envs/p26/lib/python2.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.pyc >>> in __init__(self, M) >>> 890 """ >>> 891 def __init__(self, M): >>> --> 892 self.M_lu = splu(M) >>> 893 LinearOperator.__init__(self, M.shape, self._matvec, >>> dtype=M.dtype) >>> 894 self.isreal = not np.issubdtype(self.dtype, >>> np.complexfloating) >>> >>> /home/fabian/envs/p26/lib/python2.6/site-packages/scipy/sparse/linalg/dsolve/linsolve.pyc >>> in splu(A, permc_spec, diag_pivot_thresh, drop_tol, relax, panel_size, >>> options) >>> 171 _options.update(options) >>> 172 return _superlu.gstrf(N, A.nnz, A.data, A.indices, A.indptr, >>> --> 173 ilu=False, options=_options) >>> 174 >>> 175 def spilu(A, drop_tol=None, fill_factor=None, drop_rule=None, >>> permc_spec=None, >>> >>> RuntimeError: Factor is exactly singular >>> >>> In [11]: >>> ``` >>> >>> ------------------------------------------------------------------------------ >>> Cloud Services Checklist: Pricing and Packaging Optimization >>> This white paper is intended to serve as a reference, checklist and point of >>> discussion for anyone considering optimizing the pricing and packaging model >>> of a cloud services business. Read Now! >>> http://www.accelacomm.com/jaw/sfnl/114/51491232/ >>> _______________________________________________ >>> Scikit-learn-general mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >>> >> >> ------------------------------------------------------------------------------ >> Cloud Services Checklist: Pricing and Packaging Optimization >> This white paper is intended to serve as a reference, checklist and point of >> discussion for anyone considering optimizing the pricing and packaging model >> of a cloud services business. Read Now! >> http://www.accelacomm.com/jaw/sfnl/114/51491232/ >> _______________________________________________ >> Scikit-learn-general mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >> > > ------------------------------------------------------------------------------ > Cloud Services Checklist: Pricing and Packaging Optimization > This white paper is intended to serve as a reference, checklist and point of > discussion for anyone considering optimizing the pricing and packaging model > of a cloud services business. Read Now! > http://www.accelacomm.com/jaw/sfnl/114/51491232/ > _______________________________________________ > Scikit-learn-general mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/scikit-learn-general ------------------------------------------------------------------------------ Cloud Services Checklist: Pricing and Packaging Optimization This white paper is intended to serve as a reference, checklist and point of discussion for anyone considering optimizing the pricing and packaging model of a cloud services business. Read Now! http://www.accelacomm.com/jaw/sfnl/114/51491232/ _______________________________________________ Scikit-learn-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
