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
示例#3
0
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()