[pymvpa] GPR woes
Per B. Sederberg
persed at princeton.edu
Sat Mar 28 12:06:32 UTC 2009
Hi Everybody (and Emanuele in particular):
I've tried GPR on about 5 different datasets and I've never actually
gotten it to run through an entire cross validation process. I always
get the following error:
/home/per/lib/python/mvpa/clfs/gpr.pyc in _train(self, data)
308 except SLAError:
309 epsilon = 1.0e-20 * N.eye(self._C.shape[0])
--> 310 self._L = SLcholesky(self._C + epsilon, lower=True)
311 self._LL = (self._L, True)
312 pass
/usr/lib/python2.5/site-packages/scipy/linalg/decomp.pyc in
cholesky(a, lower, overwrite_a)
552 potrf, = get_lapack_funcs(('potrf',),(a1,))
553 c,info = potrf(a1,lower=lower,overwrite_a=overwrite_a,clean=1)
--> 554 if info>0: raise LinAlgError, "matrix not positive definite"
555 if info<0: raise ValueError,\
556 'illegal value in %-th argument of internal potrf'%(-info)
LinAlgError: matrix not positive definite
I think Yarik mentioned changing epsilon or something like that, but
it seems to me that having to change source code to tweak a classifier
to not crash is not ideal.
Do you have any suggestions for how to fix this? I've been tantalized
with some very good transfer errors in the folds that GPR was able to
complete before crashing. Is there a permanent change we could make
to the GPR code to make it more stable across datasets? Or could we
turn epsilon into a configurable variable when setting up the
classifier? If so, what should I change epsilon to in order to see if
I can get it to run?
Thanks,
Per
More information about the Pkg-ExpPsy-PyMVPA
mailing list