Exemple #1
0
            return -1


# construct forecaster
eta = np.sqrt(2 * np.log(N) / T)
F = EWAForecaster(N, eta)


# we use the L2 loss
def loss(p, y):
    return np.sqrt((p - y)**2)


# run experiment
e_losses = np.zeros((T, N))
F_losses = np.zeros(T, )
for t in xrange(T):
    e_losses[t, :] = np.array([expert(i, t) for i in xrange(N)])
    F_losses[t] = F.predict(e_losses[t, :])
    F.observe(e_losses[t, :])

# plot the losses
for i in xrange(N):
    cum_loss = np.array([1 / float(t + 1)
                         for t in xrange(T)]) * np.cumsum(e_losses[:, i])
    plt.plot(range(T), cum_loss)
cum_loss = np.array([1 / float(t + 1)
                     for t in xrange(T)]) * np.cumsum(F_losses)
plt.plot(range(T), cum_loss, color='black')
plt.legend(['1', '2', '3', 'F'])
plt.show()
eta = np.sqrt(2*np.log(N)/T)
F = EWAForecaster(N, eta)

# we use the L2 loss
def loss(p, y):
  return np.sqrt((p-y)**2)

# run experiment
e_losses = np.zeros((T,N))
F_losses = np.zeros(T,)
Y = np.zeros(T,)
e_pred = np.zeros((T,N))
for t in xrange(T):
  e_t = np.array([expert(i) for i in xrange(N)])
  e_pred[t,:] = e_t
  p_t = F.predict(e_t)

  y_t = np.random.binomial(1, p)
  Y[t] = y_t

  e_losses[t,:] = loss(e_t, 3*[y_t])
  F_losses[t] = loss(p_t, y_t)

  F.observe(e_losses[t,:])

# plot the losses
for i in xrange(N):
  cum_loss = np.array([1/float(t+1) for t in xrange(T)]) * np.cumsum(e_losses[:,i])
  plt.plot(range(T), cum_loss)
cum_loss = np.array([1/float(t+1) for t in xrange(T)]) * np.cumsum(F_losses)
plt.plot(range(T), cum_loss, color='black')
    if i == 0:
      return 1
    elif i == 1:
      return 0
    elif i == 2:
      return -1

# construct forecaster
eta = np.sqrt(2*np.log(N)/T)
F = EWAForecaster(N, eta)

# we use the L2 loss
def loss(p, y):
  return np.sqrt((p-y)**2)

# run experiment
e_losses = np.zeros((T,N))
F_losses = np.zeros(T,)
for t in xrange(T):
  e_losses[t,:] = np.array([expert(i,t) for i in xrange(N)])
  F_losses[t] = F.predict(e_losses[t,:])
  F.observe(e_losses[t,:])

# plot the losses
for i in xrange(N):
  cum_loss = np.array([1/float(t+1) for t in xrange(T)]) * np.cumsum(e_losses[:,i])
  plt.plot(range(T), cum_loss)
cum_loss = np.array([1/float(t+1) for t in xrange(T)]) * np.cumsum(F_losses)
plt.plot(range(T), cum_loss, color='black')
plt.legend(['1', '2', '3', 'F'])
plt.show()
Exemple #4
0

# we use the L2 loss
def loss(p, y):
    return np.sqrt((p - y)**2)


# run experiment
e_losses = np.zeros((T, N))
F_losses = np.zeros(T, )
Y = np.zeros(T, )
e_pred = np.zeros((T, N))
for t in xrange(T):
    e_t = np.array([expert(i) for i in xrange(N)])
    e_pred[t, :] = e_t
    p_t = F.predict(e_t)

    y_t = np.random.binomial(1, p)
    Y[t] = y_t

    e_losses[t, :] = loss(e_t, 3 * [y_t])
    F_losses[t] = loss(p_t, y_t)

    F.observe(e_losses[t, :])

# plot the losses
for i in xrange(N):
    cum_loss = np.array([1 / float(t + 1)
                         for t in xrange(T)]) * np.cumsum(e_losses[:, i])
    plt.plot(range(T), cum_loss)
cum_loss = np.array([1 / float(t + 1)