time_step = 2 time_window = [-50, 20] T = 2000 simulation = np.load('linli_generalization.npy') spike_events = simulation[:-1] spike_events[0] = np.floor(spike_events[0]) target = simulation[-1] target = target[range(0,target.shape[0],time_step)] input = ts.nest_2_input(spike_events, 3*T, time_window=time_window, \ time_step=time_step) #sklms = SpikeKLMS(kernel="pop_mci", growing_criterion='novelty', growing_param=[2., 10.], ksize=5,learning_rate=.0005, n_jobs=4) sklms = SpikeKLMS(kernel="pop_mci", growing_criterion='quantized', \ growing_param=[0], ksize=5, learning_rate=.0005, \ loss_function='least_squares', correntropy_sigma=1., n_jobs=1, \ gamma=.01, dropout=0) print sklms for i in range(3): sklms.fit(input[:T/2], target[:T/2]) sklms.X_transformed_ = sklms.transform(input) G = gridspec.GridSpec(3,1) pl.figure() pl.subplot(G[:-1]) pl.plot(spike_events[0], spike_events[1], '.') pl.subplot(G[-1]) pl.plot(target) pl.plot(sklms.X_transformed_) pl.show()
import pylab as pl from sklearn.preprocessing import scale import spike_klms2 pl.close('all') reload(spike_klms2) from spike_klms2 import SpikeKLMS from scipy.io import loadmat sts = loadmat("sts.mat").get("sts") X = range(len(sts)) for i in xrange(len(X)): X[i] = squeeze(sts[i,0]) if not(X[i].shape): X[i] = X[i][newaxis] d = squeeze(loadmat("targets.mat").get("targets")) t = linspace(1,500,500) sklms = SpikeKLMS(kernel="mci", gamma=.05, learning_rate=.0003, ksize=.005, growing_criterion="dense",\ growing_param = [15, .01], dropout=5) sklms.fit_transform(X, d) pl.plot(sklms.X_transformed_) pl.plot(d) pl.figure() pl.plot(sklms.coeff_) pl.show() fe = np.mean((d - sklms.X_transformed_)**2)/np.var(d) print "Final error: %f" % fe
time_step = 2 time_window = [-50, 20] T = 2000 simulation = np.load('linli_generalization.npy') spike_events = simulation[:-1] spike_events[0] = np.floor(spike_events[0]) target = simulation[-1] target = target[range(0, target.shape[0], time_step)] input = ts.nest_2_input(spike_events, 3*T, time_window=time_window, \ time_step=time_step) #sklms = SpikeKLMS(kernel="pop_mci", growing_criterion='novelty', growing_param=[2., 10.], ksize=5,learning_rate=.0005, n_jobs=4) sklms = SpikeKLMS(kernel="pop_mci", growing_criterion='quantized', \ growing_param=[0], ksize=5, learning_rate=.0005, \ loss_function='least_squares', correntropy_sigma=1., n_jobs=1, \ gamma=.01, dropout=0) print sklms for i in range(3): sklms.fit(input[:T / 2], target[:T / 2]) sklms.X_transformed_ = sklms.transform(input) G = gridspec.GridSpec(3, 1) pl.figure() pl.subplot(G[:-1]) pl.plot(spike_events[0], spike_events[1], '.') pl.subplot(G[-1]) pl.plot(target) pl.plot(sklms.X_transformed_) pl.show()