Пример #1
0
        elif i == 1:
            return 0
        elif i == 2:
            return 5
    elif 2 * T / 3 < t:
        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, :])
# parameters
p = 0.8
d = [0.2, 0.3, 0.0]
sigma = 0.01
T = 12000

# construct experts
def expert(i):
  e = np.random.normal(0, sigma)
  return p - d[i] + e

# construct forecaster
N = len(d)
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)
      return 1
    elif i == 1:
      return 0
    elif i == 2:
      return 5
  elif 2*T/3 < t :
    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):
Пример #4
0
p = 0.8
d = [0.2, 0.3, 0.0]
sigma = 0.01
T = 12000


# construct experts
def expert(i):
    e = np.random.normal(0, sigma)
    return p - d[i] + e


# construct forecaster
N = len(d)
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