1
2
3
4
5
6
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 *
28
30
31 @sweepargs(ml=clfswh['regression']+regrswh[:])
33 """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
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
65 self.failUnless(cve.confusion.stats['Summary CCe'] < 0.5)
66
67
68
69
70
71
72 @sweepargs(clf=clfswh['regression'])
87
88
91
92
93 if __name__ == '__main__':
94 import runner
95