मुझे scipy.stats.multivariate_normal
का उपयोग करने का प्रयास करने में परेशानी हो रही है, उम्मीद है कि आप में से कोई भी मदद कर सकता है।scipy.stats.multivariate_normal raising 'LinAlgError: एकवचन मैट्रिक्स' भले ही मेरा कॉन्वर्सिस मैट्रिक्स उलटा
मैं एक 2x2 मैट्रिक्स जो numpy.linalg.inv()
का उपयोग करने का उलटा खोजने के लिए संभव है, लेकिन जब मैं मैं प्राप्त एक LinAlgError
करते हुए कहा कि यह एक विलक्षण मैट्रिक्स है multivariate_normal
में सहप्रसरण मैट्रिक्स के रूप में उपयोग करने का प्रयास:
In [89]: cov = np.array([[3.2e5**2, 3.2e5*0.103*-0.459],[3.2e5*0.103*-0.459, 0.103**2]])
In [90]: np.linalg.inv(cov)
Out[90]:
array([[ 1.23722158e-11, 1.76430200e-05],
[ 1.76430200e-05, 1.19418880e+02]])
In [91]: multivariate_normal([0,0], cov)
---------------------------------------------------------------------------
LinAlgError Traceback (most recent call last)
<ipython-input-91-44a6625beda5> in <module>()
----> 1 multivariate_normal([0,0], cov)
/mnt/ssd/Enthought_jli199/Canopy_64bit/User/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __call__(self, mean, cov, allow_singular, seed)
421 return multivariate_normal_frozen(mean, cov,
422 allow_singular=allow_singular,
--> 423 seed=seed)
424
425 def _logpdf(self, x, mean, prec_U, log_det_cov, rank):
/mnt/ssd/Enthought_jli199/Canopy_64bit/User/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __init__(self, mean, cov, allow_singular, seed)
591 """
592 self.dim, self.mean, self.cov = _process_parameters(None, mean, cov)
--> 593 self.cov_info = _PSD(self.cov, allow_singular=allow_singular)
594 self._dist = multivariate_normal_gen(seed)
595
/mnt/ssd/Enthought_jli199/Canopy_64bit/User/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __init__(self, M, cond, rcond, lower, check_finite, allow_singular)
217 d = s[s > eps]
218 if len(d) < len(s) and not allow_singular:
--> 219 raise np.linalg.LinAlgError('singular matrix')
220 s_pinv = _pinv_1d(s, eps)
221 U = np.multiply(u, np.sqrt(s_pinv))
LinAlgError: singular matrix
आप किस प्रकार के numpy का उपयोग करते हैं? मैं सफलतापूर्वक कोड 1.10.1 पर कोड चला सकता हूं। ध्यान दें कि मैट्रिक्स * तकनीकी रूप से * उलटा होने के बावजूद, यह बहुत बुरी तरह से स्केल किया गया है। – kazemakase
हाय काज़ेमेक, यह संस्करण 1.9.2 है। – Jonnyishman