本文整理汇总了Python中mvpa2.misc.data_generators.normal_feature_dataset函数的典型用法代码示例。如果您正苦于以下问题:Python normal_feature_dataset函数的具体用法?Python normal_feature_dataset怎么用?Python normal_feature_dataset使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了normal_feature_dataset函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_factorialpartitioner_big
def test_factorialpartitioner_big():
# just to see that we can cope with relatively large datasets/numbers
ds = normal_feature_dataset(nlabels=6,
perlabel=66,
nfeatures=2,
nchunks=11)
# and now let's do factorial partitioner
def partition(ds_=ds, **kwargs):
partitioner = FactorialPartitioner(
partitioner=NFoldPartitioner(attr='targets'),
attr='chunks',
**kwargs)
return [p.sa.partitions for p in partitioner.generate(ds_)]
# prohibitively large
# print len(partition(ds))
t0 = time()
assert_equal(len(partition(ds, count=2, selection_strategy='first')), 2)
# Those time limits are really a stretch. on a any reasonable box not too busy
# should be done in fraction of a second, but allow to catch "naive"
# implementation
assert(time() - t0 < 3)
assert_equal(len(partition(ds, count=2, selection_strategy='random')), 2)
assert(time() - t0 < 3)
示例2: test_splitclf_sensitivities
def test_splitclf_sensitivities():
datasets = [normal_feature_dataset(perlabel=100, nlabels=2,
nfeatures=4,
nonbogus_features=[0, i + 1],
snr=1, nchunks=2)
for i in xrange(2)]
sclf = SplitClassifier(SMLR(),
NFoldPartitioner())
analyzer = sclf.get_sensitivity_analyzer()
senses1 = analyzer(datasets[0])
senses2 = analyzer(datasets[1])
for senses in senses1, senses2:
# This should be False when comparing two folds
assert_false(np.allclose(senses.samples[0],
senses.samples[2]))
assert_false(np.allclose(senses.samples[1],
senses.samples[3]))
# Moreover with new data we should have got different results
# (i.e. it must retrained correctly)
for s1, s2 in zip(senses1, senses2):
assert_false(np.allclose(s1, s2))
# and we should have "selected" "correct" voxels
for i, senses in enumerate((senses1, senses2)):
assert_equal(set(np.argsort(np.max(np.abs(senses), axis=0))[-2:]),
set((0, i + 1)))
示例3: test_gnb_sensitivities
def test_gnb_sensitivities():
gnb = GNB(common_variance=True)
ds = normal_feature_dataset(perlabel=4,
nlabels=3,
nfeatures=5,
nchunks=4,
snr=10,
nonbogus_features=[0, 1, 2]
)
s = gnb.get_sensitivity_analyzer()(ds)
assert_in('targets', s.sa)
assert_equal(s.shape, (((len(ds.uniquetargets) * (len(ds.uniquetargets) - 1))/2), ds.nfeatures))
# test zero variance case
# set variance of feature to zero
ds.samples[:,3]=0.3
s_zerovar = gnb.get_sensitivity_analyzer()
sens = s_zerovar(ds)
assert_true(all(sens.samples[:, 3] == 0))
# test whether tagging and untagging works
assert 'has_sensitivity' in gnb.__tags__
gnb.untrain()
assert 'has_sensitivity' not in gnb.__tags__
# test whether content of sensitivities makes rough sense
# e.g.: sensitivity of first feature should be larger than of bogus last feature
assert_true(abs(sens.samples[i, 0]) > abs(sens.samples[i, 4]) for i in range(np.shape(sens.samples)[0]))
示例4: test_ds_deepcopy
def test_ds_deepcopy():
# lets use some instance of somewhat evolved dataset
ds = normal_feature_dataset()
ds.samples = ds.samples.view(myarray)
# Clone the beast
ds_ = ds.copy()
# array subclass survives
ok_(isinstance(ds_.samples, myarray))
# verify that we have the same data
assert_array_equal(ds.samples, ds_.samples)
assert_array_equal(ds.targets, ds_.targets)
assert_array_equal(ds.chunks, ds_.chunks)
# modify and see if we don't change data in the original one
ds_.samples[0, 0] = 1234
ok_(np.any(ds.samples != ds_.samples))
assert_array_equal(ds.targets, ds_.targets)
assert_array_equal(ds.chunks, ds_.chunks)
ds_.sa.targets = np.hstack(([123], ds_.targets[1:]))
ok_(np.any(ds.samples != ds_.samples))
ok_(np.any(ds.targets != ds_.targets))
assert_array_equal(ds.chunks, ds_.chunks)
ds_.sa.chunks = np.hstack(([1234], ds_.chunks[1:]))
ok_(np.any(ds.samples != ds_.samples))
ok_(np.any(ds.targets != ds_.targets))
ok_(np.any(ds.chunks != ds_.chunks))
示例5: test_ds_shallowcopy
def test_ds_shallowcopy():
# lets use some instance of somewhat evolved dataset
ds = normal_feature_dataset()
ds.samples = ds.samples.view(myarray)
# SHALLOW copy the beast
ds_ = copy.copy(ds)
# verify that we have the same data
assert_array_equal(ds.samples, ds_.samples)
assert_array_equal(ds.targets, ds_.targets)
assert_array_equal(ds.chunks, ds_.chunks)
# array subclass survives
ok_(isinstance(ds_.samples, myarray))
# modify and see that we actually DO change the data in both
ds_.samples[0, 0] = 1234
assert_array_equal(ds.samples, ds_.samples)
assert_array_equal(ds.targets, ds_.targets)
assert_array_equal(ds.chunks, ds_.chunks)
ds_.sa.targets[0] = 'ab'
ds_.sa.chunks[0] = 234
assert_array_equal(ds.samples, ds_.samples)
assert_array_equal(ds.targets, ds_.targets)
assert_array_equal(ds.chunks, ds_.chunks)
ok_(ds.sa.targets[0] == 'ab')
ok_(ds.sa.chunks[0] == 234)
示例6: test_smlr_sensitivities
def test_smlr_sensitivities(clf):
data = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4)
# use SMLR on binary problem, but not fitting all weights
clf.train(data)
# now ask for the sensitivities WITHOUT having to pass the dataset
# again
sens = clf.get_sensitivity_analyzer(force_train=False)(None)
assert_equal(sens.shape, (len(data.UT) - 1, data.nfeatures))
示例7: test_mdpflowmapper
def test_mdpflowmapper():
flow = mdp.nodes.PCANode() + mdp.nodes.SFANode()
fm = MDPFlowMapper(flow)
ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4)
fm.train(ds)
assert_false(fm.flow[0].is_training())
assert_false(fm.flow[1].is_training())
fds = fm.forward(ds)
assert_true(isinstance(fds, Dataset))
assert_equal(fds.samples.shape, ds.samples.shape)
示例8: test_imshow
def test_imshow():
from mvpa2.viz import matshow
from mvpa2.misc.data_generators import normal_feature_dataset
from matplotlib.colorbar import Colorbar
ds = normal_feature_dataset(10, 2, 18, 5)
im = matshow(ds)
# old mpl returns a tuple of Colorbar which is anyways available as its .ax
if isinstance(im.colorbar, tuple):
assert_is_instance(im.colorbar[0], Colorbar)
assert_true(im.colorbar[1] is im.colorbar[0].ax)
else:
# new mpls do it withough unnecessary duplication
assert_is_instance(im.colorbar, Colorbar)
示例9: test_glmnet_c_sensitivities
def test_glmnet_c_sensitivities():
data = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4)
# use GLMNET on binary problem
clf = GLMNET_C()
clf.train(data)
# now ask for the sensitivities WITHOUT having to pass the dataset
# again
sens = clf.get_sensitivity_analyzer(force_train=False)(None)
#failUnless(sens.shape == (data.nfeatures,))
assert_equal(sens.shape, (len(data.UT), data.nfeatures))
示例10: test_sifter_superord_usecase
def test_sifter_superord_usecase():
from mvpa2.misc.data_generators import normal_feature_dataset
from mvpa2.clfs.svm import LinearCSVMC # fast one to use for tests
from mvpa2.measures.base import CrossValidation
from mvpa2.base.node import ChainNode
from mvpa2.generators.partition import NFoldPartitioner
from mvpa2.generators.base import Sifter
# Let's simulate the beast -- 6 categories total groupped into 3
# super-ordinate, and actually without any 'superordinate' effect
# since subordinate categories independent
ds = normal_feature_dataset(nlabels=6,
snr=100, # pure signal! ;)
perlabel=30,
nfeatures=6,
nonbogus_features=range(6),
nchunks=5)
ds.sa['subord'] = ds.sa.targets.copy()
ds.sa['superord'] = ['super%d' % (int(i[1])%3,)
for i in ds.targets] # 3 superord categories
# let's override original targets just to be sure that we aren't relying on them
ds.targets[:] = 0
npart = ChainNode([
## so we split based on superord
NFoldPartitioner(len(ds.sa['superord'].unique),
attr='subord'),
## so it should select only those splits where we took 1 from
## each of the superord categories leaving things in balance
Sifter([('partitions', 2),
('superord',
{ 'uvalues': ds.sa['superord'].unique,
'balanced': True})
]),
], space='partitions')
# and then do your normal where clf is space='superord'
clf = LinearCSVMC(space='superord')
cvte_regular = CrossValidation(clf, NFoldPartitioner(),
errorfx=lambda p,t: np.mean(p==t))
cvte_super = CrossValidation(clf, npart, errorfx=lambda p,t: np.mean(p==t))
accs_regular = cvte_regular(ds)
accs_super = cvte_super(ds)
# With sifting we should get only 2^3 = 8 splits
assert(len(accs_super) == 8)
# I don't think that this would ever fail, so not marking it labile
assert(np.mean(accs_regular) > .8)
assert(np.mean(accs_super) < .6)
示例11: test_confusionmatrix_nulldist
def test_confusionmatrix_nulldist(self):
from mvpa2.clfs.gnb import GNB
class ConfusionMatrixError(object):
"""Custom error "function"
"""
def __init__(self, labels=None):
self.labels = labels
def __call__(self, predictions, targets):
cm = ConfusionMatrix(labels=list(self.labels),
targets=targets, predictions=predictions)
#print cm.matrix
# We have to add a degenerate leading dimension
# so we could separate them into separate 'samples'
return cm.matrix[None, :]
from mvpa2.misc.data_generators import normal_feature_dataset
for snr in [0., 2.,]:
ds = normal_feature_dataset(snr=snr, perlabel=42, nchunks=3,
nonbogus_features=[0,1], nfeatures=2)
clf = GNB()
num_perm = 50
permutator = AttributePermutator('targets',
limit='chunks',
count=num_perm)
cv = CrossValidation(
clf, NFoldPartitioner(),
errorfx=ConfusionMatrixError(labels=ds.sa['targets'].unique),
postproc=mean_sample(),
null_dist=MCNullDist(permutator,
tail='right', # because we now look at accuracy not error
enable_ca=['dist_samples']),
enable_ca=['stats'])
cmatrix = cv(ds)
#print "Result:\n", cmatrix.samples
cvnp = cv.ca.null_prob.samples
#print cvnp
self.assertTrue(cvnp.shape, (2, 2))
if cfg.getboolean('tests', 'labile', default='yes'):
if snr == 0.:
# all p should be high since no signal
assert_array_less(0.05, cvnp)
else:
# diagonal p is low -- we have signal after all
assert_array_less(np.diag(cvnp), 0.05)
# off diagonals are high p since for them we would
# need to look at the other tail
assert_array_less(0.9,
cvnp[(np.array([0,1]), np.array([1,0]))])
示例12: test_mdpnodemapper
def test_mdpnodemapper():
ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4)
node = mdp.nodes.PCANode()
mm = MDPNodeMapper(node, nodeargs={'stoptrain': ((), {'debug': True})})
mm.train(ds)
fds = mm.forward(ds)
if externals.versions['mdp'] >= '2.5':
assert_true(hasattr(mm.node, 'cov_mtx'))
assert_true(isinstance(fds, Dataset))
assert_equal(fds.samples.shape, ds.samples.shape)
# set projection onto first 2 components
mm.nodeargs['exec'] = ((), {'n': 2})
#should be different from above
lfds = mm.forward(ds.samples)
# output shape changes although the node still claim otherwise
assert_equal(mm.node.output_dim, 4)
assert_equal(lfds.shape[0], fds.samples.shape[0])
assert_equal(lfds.shape[1], 2)
assert_array_equal(lfds, fds.samples[:, :2])
# reverse
rfds = mm.reverse(fds)
# even smaller size works
rlfds = mm.reverse(lfds)
assert_equal(rfds.samples.shape, ds.samples.shape)
# retraining has to work on a new dataset too, since we copy the node
# internally
dsbig = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=10)
mm.train(dsbig)
示例13: test_mdpflow_additional_arguments_nones
def test_mdpflow_additional_arguments_nones():
skip_if_no_external('mdp', min_version='2.5')
# we have no IdentityNode yet... is there analog?
ds = normal_feature_dataset(perlabel=10, nlabels=2, nfeatures=4)
flow = mdp.nodes.PCANode() + mdp.nodes.IdentityNode() + mdp.nodes.FDANode()
# this is what it would look like in MDP itself
#flow.train([[ds.samples],
# [[ds.samples, ds.sa.targets]]])
assert_raises(ValueError, MDPFlowMapper, flow, node_arguments=[[],[]])
fm = MDPFlowMapper(flow, node_arguments = (None, None, [ds.sa.targets]))
fm.train(ds)
fds = fm.forward(ds)
assert_equal(ds.samples.shape, fds.samples.shape)
rds = fm.reverse(fds)
assert_array_almost_equal(ds.samples, rds.samples)
示例14: _get_superord_dataset
def _get_superord_dataset():
"""A little helper to simulate a dataset with super/subord targets structure
"""
# Let's simulate the beast -- 6 categories total groupped into 3
# super-ordinate, and actually without any 'superordinate' effect
# since subordinate categories independent
ds = normal_feature_dataset(nlabels=6,
snr=100, # pure signal! ;)
perlabel=30,
nfeatures=6,
nonbogus_features=range(6),
nchunks=5)
ds.sa['subord'] = ds.sa.targets.copy()
ds.sa['superord'] = ['super%d' % (int(i[1]) % 3,)
for i in ds.targets] # 3 superord categories
# let's override original targets just to be sure that we aren't relying on them
ds.targets[:] = 0
return ds
示例15: test_hist
def test_hist():
from mvpa2.viz import hist
from mvpa2.misc.data_generators import normal_feature_dataset
from matplotlib.axes import Subplot
ds = normal_feature_dataset(10, 3, 10, 5)
plots = hist(ds, ygroup_attr='targets', xgroup_attr='chunks',
noticks=None, xlim=(-.5, .5), normed=True)
assert_equal(len(plots), 15)
for sp in plots:
assert_is_instance(sp, Subplot)
# simple case
plots = hist(ds)
assert_equal(len(plots), 1)
assert_is_instance(plots[0], Subplot)
# make sure it works with plan arrays too
plots = hist(ds.samples)
assert_equal(len(plots), 1)
assert_is_instance(plots[0], Subplot)