I have a small problem regarding feature extraction with correlation. I have divided my question in four parts hoping that somebody can help me.

I have a dataset consisting of fMRI images. Each image is 4D (time series), i.e. x-y-z-t where t is the time. Each image belongs to one class. The dataset is as follows:

Class 1: 9 images 
Class 2: 10 images 
Class 3: 6 images 
Class 4: 12 images

Now I want to extract features from the images based on correlations between voxels. Each voxel has a single value but due to the temporal domain a voxel can be viewed as a vector. For example a voxel is e.g. the vector [v1,v2,v3,....,vn] where each element corresponds to the value of the voxel at one timepoint. If I compute now the correlation between the first and second voxel in an image I just compute the correlation between the corresponding vectors.

I want now to compute the correlations between all voxels in the image, i.e. voxel1 and voxel2, voxel1 and voxel3 etc. Then I will take each correlation value as a feature. Of course I will not compute the correlation between voxel2 and voxel1 because this is the same as the correlation between voxel 1 and voxel 2. This I will do for all images, i.e. from every image I get a data point. Then I will apply PCA to reduce the dimensionality.

  1. Is this reasonable?

    Should I use cross-correlation (in Matlab xcorr) or correlation (in Matlab corrcoef)?

  2. And how can I compute efficiently this correlations?
  3. Last but not least, I have found the following paper (Principal Feature Analysis: A Multivariate Feature Selection Method for fMRI Data): http://www.hindawi.com/journals/cmmm/2013/645921/

    In this paper they first applied PCA and then did a clustering (k-means), see section 2.6.2 of paper. They just keep only the vector closest to each cluster and finally the feature corresponding to this vectors are selected as informative features. In the paper they used the approach for voxels and not correlations.

    Can I use it also for my correlation based approach, i.e. after applying PCA also applying clustering?

    By the way, in this paper they used k-means. Would Ward's hierarchical clustering algorithm also be reasonable? Moreover, they used cosine distance in k-means. Why not using Euclidean distance?

  4. If I do the feature extraction based on voxels and not correlations, should I then just take each volume in the time series as a single data point or should I average the values in the time series for each voxel?
  • 1
    $\begingroup$ How many voxel's are you looking at this could quickly get computationally intractable, quite quickly. Efficiency in this context is also a function of how much time are you willing to wait, and what computational resources you have access too. Intuitively I don't see what you are really trying to do with these correlations, what does the PCA of these things do for you? $\endgroup$ – Jonathan Lisic May 22 '15 at 22:02
  • $\begingroup$ @Jonathan The images have dimension 90*60*10*350 where 350 are the time points. With PCA I can reduce the dimensionality of the features. With the correlations I try to take into account the time series of the voxels. $\endgroup$ – machinery May 22 '15 at 22:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.