示例#1
0
def test_unsupervised_spatial_filter():
    """Test unsupervised spatial filter."""
    from sklearn.decomposition import PCA
    from sklearn.kernel_ridge import KernelRidge
    raw = io.read_raw_fif(raw_fname)
    events = read_events(event_name)
    picks = pick_types(raw.info, meg=True, stim=False, ecg=False,
                       eog=False, exclude='bads')
    picks = picks[1:13:3]
    epochs = Epochs(raw, events, event_id, tmin, tmax, picks=picks,
                    preload=True, baseline=None, verbose=False)

    # Test estimator
    assert_raises(ValueError, UnsupervisedSpatialFilter, KernelRidge(2))

    # Test fit
    X = epochs.get_data()
    n_components = 4
    usf = UnsupervisedSpatialFilter(PCA(n_components))
    usf.fit(X)
    usf1 = UnsupervisedSpatialFilter(PCA(n_components))

    # test transform
    assert_equal(usf.transform(X).ndim, 3)
    # test fit_transform
    assert_array_almost_equal(usf.transform(X), usf1.fit_transform(X))
    assert_equal(usf.transform(X).shape[1], n_components)
    assert_array_almost_equal(usf.inverse_transform(usf.transform(X)), X)

    # Test with average param
    usf = UnsupervisedSpatialFilter(PCA(4), average=True)
    usf.fit_transform(X)
    assert_raises(ValueError, UnsupervisedSpatialFilter, PCA(4), 2)
示例#2
0
文件: Guia_2.py 项目: jegonza66/BCI
    ax2 = fig2.add_subplot(11, 2, i + 1)
    ax2.grid()
    ax2.set_ylabel('ICA{}'.format(i))
    ax2.plot(tiempo, data_ICA[150][i])
    ax2.set_xlim([0, 2])
    ax2.tick_params(axis='both', which='major', labelsize=8)
    if (i < len(data_ICA[0]) - 2):
        ax2.set_xticklabels([])
    else:
        ax2.set_xlabel('time[s]')
fig2.suptitle('Independent components')

#EXCLUDE ARTIFACTS AND PLOT FILTERED AND RAW DATA
exclude_channels = [1, 3, 5, 15]
data_ICA[:, exclude_channels, :] = 0
reconstructed_data = ICA_transformer.inverse_transform(data_ICA)

fig1 = plt.figure(figsize=(10, 20))
plt.subplots_adjust(left=0.07,
                    bottom=0.08,
                    right=0.95,
                    top=0.93,
                    wspace=0.17,
                    hspace=0.3)
for i in range(len(reconstructed_data[0])):
    ax1 = fig1.add_subplot(11, 2, (i + 1))
    ax1.grid()
    ax1.set_ylabel('{}'.format(channel_names[i]))
    ax1.plot(tiempo, reconstructed_data[0][i], label='filtered data')
    ax1.plot(tiempo, datos[0][i], label='raw data')
    ax1.set_xlim([0, 2])