| Home | Trees | Indices | Help |
|
|---|
|
|
1 # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- 2 # vi: set ft=python sts=4 ts=4 sw=4 et: 3 ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## 4 # 5 # See COPYING file distributed along with the PyMVPA package for the 6 # copyright and license terms. 7 # 8 ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## 9 """Unit tests for PyMVPA Regressions""" 10 11 from mvpa.base import externals 12 from mvpa.support.copy import deepcopy 13 14 from mvpa.datasets import Dataset 15 from mvpa.mappers.mask import MaskMapper 16 from mvpa.datasets.splitters import NFoldSplitter 17 18 from mvpa.misc.errorfx import RMSErrorFx, RelativeRMSErrorFx, \ 19 CorrErrorFx, CorrErrorPFx 20 21 from mvpa.clfs.transerror import TransferError 22 from mvpa.misc.exceptions import UnknownStateError 23 24 from mvpa.algorithms.cvtranserror import CrossValidatedTransferError 25 26 from tests_warehouse import * 27 from tests_warehouse_clfs import *30 31 @sweepargs(ml=clfswh['regression']+regrswh[:])8833 """Test If binary regression-based classifiers have proper tag 34 """ 35 self.failUnless(('binary' in ml._clf_internals) != ml.regression, 36 msg="Inconsistent markin with " 37 "binary and regression features detected")38 39 @sweepargs(regr=regrswh['regression'])41 """Simple tests on regressions 42 """ 43 ds = datasets['chirp_linear'] 44 45 cve = CrossValidatedTransferError( 46 TransferError(regr, CorrErrorFx()), 47 splitter=NFoldSplitter(), 48 enable_states=['training_confusion', 'confusion']) 49 corr = cve(ds) 50 51 #TODO: test confusion statistics 52 s0 = cve.confusion.asstring(short=True) 53 s1 = cve.confusion.asstring(short=False) 54 55 for s in [s0, s1]: 56 self.failUnless(len(s) > 10, 57 msg="We should get some string representation " 58 "of regression summary. Got %s" % s) 59 60 self.failUnless(corr<0.2, 61 msg="Regressions should perform well on a simple " 62 "dataset. Got correlation error of %s " % corr) 63 64 # Test access to summary statistics 65 if cfg.getboolean('tests', 'labile', default='yes'): 66 self.failUnless(cve.confusion.stats['Summary CCe'] < 0.5)67 68 # To test basic plotting 69 #import pylab as P 70 #cve.confusion.plot() 71 #P.show() 72 73 @sweepargs(clf=clfswh['regression'])75 """Simple tests on regressions being used as classifiers 76 """ 77 # check if we get values set correctly 78 clf.states._changeTemporarily(enable_states=['values']) 79 self.failUnlessRaises(UnknownStateError, clf.states['values']._get) 80 cv = CrossValidatedTransferError( 81 TransferError(clf), 82 NFoldSplitter(), 83 enable_states=['confusion', 'training_confusion']) 84 ds = datasets['uni2small'] 85 cverror = cv(ds) 86 self.failUnless(len(clf.values) == ds['chunks', 1].nsamples) 87 clf.states._resetEnabledTemporarily()91 return unittest.makeSuite(RegressionsTests)92 93 94 if __name__ == '__main__': 95 import runner 96
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Tue Jun 2 01:42:03 2009 | http://epydoc.sourceforge.net |