Hi,

I have been doing some work with 0.4.7 lately and am wondering what the
exact strategy/formula behind the .getSensitivityAnalyzer() is for dealing
with SVM weights. My original intuition was that this function was a
shortcut to grab the hyperplane weights and that calling it with a dataset
again after it had already been trained was a formality (a silly assumption,
but based on the ValueError I was getting when not providing a dataset). My
code looks similar to this (I know there are more convenient ways to do
sample partitioning, this was set up for easy access to training and testing
predictions):

dset=normalFeatureDataset()
clf = SVM(C=1)
training_set = dset.selectSamples(dset.chunks != 0)
clf.train(training_set)
sens = clf.getSensitivityAnalyzer()
predictions = clf.predict(dset.samples) # see how it does on training and
testing

weights = sens(dset) # turns out that this actually retrains clf

I was confused to see that the weights were identical no matter which fold
was left out. Should I actually be using weights = sens(training_set) or is
there some way to get the weights without calling with a dataset?
lots of related questions:
What would I need to pull out of a linearSVM to reproduce its predictions?
Is there an analog of getSensitivityAnalyzer() that would give me the w and
b from the SVM's wx+b? What is the difference between w and what is returned
by getSensitivityAnalyzer()?

Thanks as always,
Matt
_______________________________________________
Pkg-ExpPsy-PyMVPA mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-exppsy-pymvpa

Reply via email to