EEG redundancy data reduction based on N-dimensional PCA

Dear MNE Group,

I am currently working on MNE for Neuro-feedback application. I would like to use PCA for dimensional EEG data reduction.

I followed the workflow explain in the example:

epochs = mne.Epochs(eeg_channels, events=events, event_id=event_id, tmin=-0.2, tmax=0.5, proj=True, baseline=(None, 0), preload=True)

X=epochs.get_data()

pca = UnsupervisedSpatialFilter(PCA(19), average=False)

pca = PCA(n_components=None, whiten=False)

pca_data = pca.fit_transform(X)

pca_reduced=pca.transform(X)

Error:

ValueError: Found array with dim 3. Estimator expected <= 2.

Any help would be highly appreciated.

Thanks With Warm Regards,

MD. KHORSHED ALAM (Shishir)

Graduate Research Assistant (GRA)

Center of Intelligent Signal and Imaging Research (CISIR)
Department of Electrical and Electronic Engineering
Universiti Teknologi PETRONAS
Bandar Seri Iskandar
32610 Tronoh
Perak Darul Ridzuan
Malaysia

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20180301/c495f36a/attachment-0001.html

Dear Khorshed Alam,

try this:

epochs = mne.Epochs(eeg_channels, events=events, event_id=event_id, tmin=-0.2, tmax=0.5, proj=True, baseline=(None, 0), preload=True)
n_components = 19 # Number of components to keep (should be less then the number of channels)
X = epochs.get_data()
pca = UnsupervisedSpatialFilter(PCA(n_components, whiten=True), average=False)
pca_data = pca.fit_transform(X)

best,
Marijn.

the PCA expects a 2-dimensional data matrix: channels x

Dear MNE Group,

I am currently working on MNE for Neuro-feedback application. I would like to use PCA for dimensional EEG data reduction.

I followed the workflow explain in the example:

epochs = mne.Epochs(eeg_channels, events=events, event_id=event_id, tmin=-0.2, tmax=0.5, proj=True, baseline=(None, 0), preload=True)

X=epochs.get_data()

pca = UnsupervisedSpatialFilter(PCA(19), average=False)

pca = PCA(n_components=None, whiten=False)

pca_data = pca.fit_transform(X)

pca_reduced=pca.transform(X)

Error:

ValueError: Found array with dim 3. Estimator expected <= 2.

Any help would be highly appreciated.

Thanks With Warm Regards,
MD. KHORSHED ALAM (Shishir)
Graduate Research Assistant (GRA)
Center of Intelligent Signal and Imaging Research (CISIR)
Department of Electrical and Electronic Engineering
Universiti Teknologi PETRONAS
Bandar Seri Iskandar
32610 Tronoh
Perak Darul Ridzuan
Malaysia

_______________________________________________
Mne_analysis mailing list
Mne_analysis at nmr.mgh.harvard.edu
Mne_analysis Info Page

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
MyComplianceReport.com: Compliance and Ethics Reporting . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1386 bytes
Desc: not available
Url : http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20180301/58d9c579/attachment.bin

Hi there,

Just quickly looking over the code, it looks as though you are overwriting
`pca`. Within MNE, we have the `UnsupervisedSpatialFilter` that takes an
estimator `PCA` as an argument. It can then fit/fit_transform your data
`epochs.get_data()` which has the dimensions (n_epochs, channels, time).

It seems you did create this with the first `pca` step. However, it seems
you then included an erroneous second step, which overwrites `pca` with
sklearn PCA object, which expects the data in the shape (n_samples,
n_features).

Try removing that second PCA step and see if it works.

HTH,