示例#1
0
    def testBinds(self):
        ds = normalFeatureDataset()
        ds_data = ds.samples.copy()
        ds_chunks = ds.chunks.copy()
        self.failUnless(N.all(ds.samples == ds_data)) # sanity check

        funcs = ['zscore', 'coarsenChunks']
        if externals.exists('scipy'):
            funcs.append('detrend')

        for f in funcs:
            eval('ds.%s()' % f)
            self.failUnless(N.any(ds.samples != ds_data) or
                            N.any(ds.chunks != ds_chunks),
                msg="We should have modified original dataset with %s" % f)
            ds.samples = ds_data.copy()
            ds.chunks = ds_chunks.copy()

        # and some which should just return results
        for f in ['aggregateFeatures', 'removeInvariantFeatures',
                  'getSamplesPerChunkLabel']:
            res = eval('ds.%s()' % f)
            self.failUnless(res is not None,
                msg='We should have got result from function %s' % f)
            self.failUnless(N.all(ds.samples == ds_data),
                msg="Function %s should have not modified original dataset" % f)
示例#2
0
    def testTScoredAnalyzer(self, svm):
        self.dataset = normalFeatureDataset(perlabel=100,
                                            nlabels=2,
                                            nchunks=20,
                                            nonbogus_features=[0,1],
                                            nfeatures=4,
                                            snr=10)
        svm_weigths = svm.getSensitivityAnalyzer()

        sana = TScoredFeaturewiseMeasure(
                    svm_weigths,
                    NFoldSplitter(cvtype=1),
                    enable_states=['maps'])

        t = sana(self.dataset)

        # correct size?
        self.failUnlessEqual(t.shape, (4,))

        # check reasonable sensitivities
        t = Absolute(t)
        self.failUnless(N.mean(t[:2]) > N.mean(t[2:]))

        # check whether SplitSensitivityAnalyzer 'maps' state is accessible
        self.failUnless(sana.states.isKnown('maps'))
        self.failUnless(N.array(sana.maps).shape == (20,4))
示例#3
0
    def testLARSSensitivities(self):
        data = normalFeatureDataset(perlabel=10, nlabels=2, nfeatures=4)

        # use LARS on binary problem
        clf = LARS()
        clf.train(data)

        # now ask for the sensitivities WITHOUT having to pass the dataset
        # again
        sens = clf.getSensitivityAnalyzer(force_training=False)()

        self.failUnless(sens.shape == (data.nfeatures,))
示例#4
0
    def testSMLRSensitivities(self):
        data = normalFeatureDataset(perlabel=10, nlabels=2, nfeatures=4)

        # use SMLR on binary problem, but not fitting all weights
        clf = SMLR(fit_all_weights=False)
        clf.train(data)

        # now ask for the sensitivities WITHOUT having to pass the dataset
        # again
        sens = clf.getSensitivityAnalyzer(force_training=False)()

        self.failUnless(sens.shape == (data.nfeatures,))