[pymvpa] Forgot to add: some papers on why GNB works even when there is covariance structure

Rajeev Raizada rajeev.raizada at dartmouth.edu
Thu Apr 29 15:04:52 UTC 2010


As a quick add-on to my last mail:
I forgot to mention: these papers look interesting.
They're about why Naive Bayes manages to succeed
even when the data contains actual covariance structure
of precisely the sort that the algorithm Naively ignores.

I'm in the process of trying to understand them. A long process  :-)
If anyone would like to explain them to me
then that would be most welcome.  :-)
http://scholar.google.com/scholar?cluster=6965349692287996416
http://www.cs.unb.ca/profs/hzhang/publications/FLAIRS04ZhangH.pdf
http://www.cse.unr.edu/~bebis/CS679/PaperPresentations/domingos97optimality.pdf

Raj

On Thu, Apr 29, 2010 at 10:53 AM, Rajeev Raizada
<rajeev.raizada at dartmouth.edu> wrote:
> Dear MVPA python + matlab folks (I'm cross-posting to both lists),
>
> I was chatting with Yarik and Michael the other day
> about their ultra-fast Gaussian Naive Bayes searchlight script.
> I think it's a nice idea. Thanks for making it!
> (The script I'm talking about is here in the code tree:
> pymvpa/mvpa/measures/gnbsearchlight.py )
>
> The script gains its speed by exploiting a nice trick
> that I hadn't thought of:
> because GNB doesn't use any info about particular
> combinations of voxels, you can calculate the means and s.d.s
> of all the voxels at once at the beginning of each cross-validation rep,
> and then reuse those precomputed values for any searchlight sphere.
>
> I'm still far too lacking in fluency in Python to be able to really
> read through and understand individual PyMVPA scripts,
> so I reimplemented the GNB part in Matlab:
> http://www.nmr.mgh.harvard.edu/~raj/Matlab/raj_searchlight_gnb.m
>
> That script is nice and fast, but it relies on the coords of the sphere voxels
> having been pre-computed in advance.
> That still takes a fair chunk of CPU time:
> http://www.nmr.mgh.harvard.edu/~raj/Matlab/premake_sphere_coords_list.m
>
> As far as I can tell from the gnbsearchlight.py script,
> it assumes that the sphere radius is one voxel.
> One-voxel-radius sphere-coords can be computed on the fly very quickly,
> simply by listing the six +/-1 x,y,z voxels attached to the sphere center.
>
> But I was wondering if you guys have a quick trick
> for computing the voxel coords of searchlight spheres which
> are of larger radius. Once you get past radius 1 or 2,
> the lookup-table approach starts to get pretty impractical.
>
> My best attempt so far is that script
> http://www.nmr.mgh.harvard.edu/~raj/Matlab/premake_sphere_coords_list.m
> It's not very good though. It still takes a long time.
> At least you only need to run it once, but it's still slow.
> Any advice on faster tricks greatly appreciated!
>
> Raj
>



More information about the Pkg-ExpPsy-PyMVPA mailing list