Calendario de Partidos de la Primera B de Chile para Mañana
Mañana es un día emocionante para los fanáticos del fútbol en Chile, especialmente para los seguidores de la Primera B. La categoría, considerada como la segunda división del fútbol chileno, nos ofrece encuentros llenos de intensidad y oportunidades donde equipos luchan por el ascenso a la Primera División. Aquí te presentamos un desglose detallado de los partidos planeados para mañana, junto con nuestras expertas predicciones de apuestas para que no te pierdas nada de la acción en el campo.
### Partido 1: Deportes Recoleta vs Magallanes
- Hora: 12:30 PM
- Lugar: Estadio Municipal de La Pintana
Deportes Recoleta llega a este encuentro con una racha positiva, buscando consolidar su lugar en la parte alta de la tabla, mientras que Magallanes, por su parte, buscará romper esa racha adversa que lo ha tenido en problemas últimamente. En el análisis de las estadísticas recientes, los visitantes han mostrado mejoras en su defensa, pero aún enfrentan desafíos en la ofensiva.
#### Predicciones de Apuestas:
- **Apuesta segura:** Victoria de Deportes Recoleta
- **Total de goles:** Más de 2.5 goles en el partido
### Partido 2: Unión San Felipe vs Deportes Santa Cruz
- Hora: 3:00 PM
- Lugar: Estadio Municipal Lucio Fariña Fernández
El Unión San Felipe se encuentra en un estado de transición bajo su nuevo entrenador, mostrando mejorías significativas. Por otro lado, Deportes Santa Cruz parece estar en un momento de indecisión táctica que le ha costado puntos valiosos. Este partido promete ser crucial, especialmente para el Unión San Felipe, que busca mejorar su posición en la tabla acumulativa.
#### Predicciones de Apuestas:
- **Apuesta segura:** Empate
- **Empate a lo largo del partido:** Sí
### Análisis Táctico y Estratégico
La Primera B no solo es una competencia de alto nivel futbolístico, sino también una oportunidad para que los estrategas demuestren sus habilidades. Los equipos están constantemente ajustando sus tácticas para tratar de explotar las debilidades del rival y fortalecer sus propias líneas ofensivas. Veamos algunos aspectos tácticos clave que podrían influir en los resultados de los partidos:
- Transiciones rápidas: Equipos como Deportes Recoleta utilizan las transiciones rápida<|repo_name|>Max-Huggan/comp_pub<|file_sep|>/comp_pub_examples/dynamics/fixed_points_four_modes.py
import numpy as np
import tensorflow as tf
import keras.backend as K
import matplotlib.pyplot as plt
from comp_pub.regularizers.contextual import ContextualRegularizer
from comp_pub.regularizers.independent import CategoricalActiveRegularizer
from comp_pub.lite.model import LiteDynamicsModel
from keras.models import Input, Model
from keras.layers import MeanSquaredError, Dense, Concatenate
from keras.callbacks import CSVLogger
from keras.optimizers import Adam
#Provide real data
X = []
Y = []
f = open("../data/four_modes/fixed_points.csv", "r")
lines = f.readlines()
for line in lines:
split = line.split(",")
X.append([float(split[0])])
Y.append([float(split[1]))]
print(line)
X = np.array(X)
Y = np.array(Y)
#Elements of the sparse prior
sparse_prior_context = np.array([[0., 1., 0., 0., 0., 0., 0., 0.]])
sparse_prior_active = np.array([[1., 0., 0.]])
sparse_prior_dynamic = np.array([[1., 10., -10., 1., 1.]])
# Create model structure
context_in = Input((8,), name='context')
x_in = Input((1,), name='x')
active_in = Concatenate(axis=1)([x_in, context_in])
x_t_pred = Dense(1)(active_in)
model = Model(inputs=[context_in, x_in], outputs=x_t_pred)
loss = MeanSquaredError()
optimizer = Adam(learning_rate=0.001)
context_reg = ContextualRegularizer(context_regularizer=CategoricalActiveRegularizer(sparse_prior_context, sparse_prior_active), dynamic_regularizer=sum_squared_error_relaxed_reg(sparse_prior_dynamic))
model.compile(
loss=loss,
optimizer=optimizer,
metrics=[loss]
)
context_regularizer_cb = ContextualRegularizerCallback(context_reg, loss=model.loss)
model.fit(
[X[:, :8], X[:, 8:]],
Y,
verbose=0,
callbacks=[
CSVLogger("four_modes_fixed_points_data.csv"),
context_regularizer_cb
]
)
lstm = LiteDynamicsModel(
n_inputs=1,
n_outputs=1,
n_hiddens=[50],
n_contexts=8,
context_model=context_reg.context_model,
loss=tf.keras.losses.MeanSquaredError(),
optimizer=tf.keras.optimizers.Adam(),
metrics=[tf.keras.metrics.MeanAbsoluteError()],
)
lstm.fit(
X,
Y,
epochs=100,
batch_size=5120,
verbose=1,
callbacks=[
CSVLogger("four_modes_fixed_points_lstm.csv"),
context_reg.lite_callback()
]
)
#Run dynamics a lot of times to get average of predictions and show uncertainty
n_perturbations = 100
n_iterations = 100
n_contexts = 8
n_x_steps = 101
X_RL = []
X_context = []
for i in range(n_contexts):
for j in range(n_x_steps):
X_RL.append([j / float(n_x_steps - 1)])
X_context.append(np.eye(n_contexts)[i])
X_RL_uq = np.array(X_RL)
X_context_uq = np.array(X_context)
#Define initial value for x
x_in_value = np.linspace(-2.0, 2.0, 20)[:, None]
#Define x-values over which to plot dynamics
x_plot = np.linspace(-2.0, 2.0, n_x_steps)[:, None]
#Define the predictions from the data trained original model
y_pred_data = model.predict(
X
)[:, :, 0]
# Define the predictions from the LSTM-trained "lite" model
y_pred_lstm = lstm.predict(
X_RL_uq,
X_context_uq,
n_perturbations,
)
y_pred_data_avg = np.mean(y_pred_data, axis=0)
y_data_upper_lower_bound = [np.percentile(y_pred_data, 99, axis=0),
np.percentile(y_pred_data, 1, axis=0)]
y_pred_lstm_avg = np.mean(y_pred_lstm[:, :, 0], axis=0)
y_lstm_upper_lower_bound = [np.percentile(y_pred_lstm[:, :, 0],
99, axis=0),
np.percentile(y_pred_lstm[:, :, 0],
1, axis=0)]
plt.figure()
plt.plot(x_plot.flatten(), y_pred_data_avg, linewidth=2.5)
plt.plot(x_plot.flatten(), y_data_upper_lower_bound[1].flatten(), '--', linewidth=2.0)
plt.plot(x_plot.flatten(), y_data_upper_lower_bound[0].flatten(), '--', linewidth=2.0)
plt.plot(x_in_value.flatten(), y_in_value.flatten(), 'o')
plt.title("Fixed points with data model")
plt.show()
plt.figure()
plt.plot(x_plot.flatten(), y_pred_lstm_avg, linewidth=2.5)
plt.plot(x_plot.flatten(), y_lstm_upper_lower_bound[1].flatten(), '--', linewidth=2.0)
plt.plot(x_plot.flatten(), y_lstm_upper_lower_bound[0].flatten(), '--', linewidth=2.0)
plt.plot(x_in_value.flatten(), y_in_value.flatten(), 'o')
plt.title("Fixed points with LSTM trained lite model")
plt.show()
<|repo_name|>Max-Huggan/comp_pub<|file_sep|>/comp_pub/examples/power_law.py
import numpy as np
import tensorflow as tf
import keras.backend as K
from comp_pub.regularizers.contextual import ContextualRegularizer
from comp_pub.regularizers.independent import CategoricalActiveRegularizer
from keras.models import Input, Model
from keras.layers import mean_squared_error as mse, Dense, Concatenate
from keras.callbacks import Callback
from keras.optimizers import Adam
# Provide real data
# x is the learning dimensionality and y is the remaining dimensionality
X = []
Y = []
f = open("../data/power_law/learning-dimensionality.csv", "r")
lines = f.readlines()
for line in lines:
split = line.split(",")
X.append([float(split[0])])
Y.append([float(split[1])])
X = np.array(X)
Y = np.array(Y)
# Elements of the sparse prior
sparse_prior_context = np.array([[1., 0.], [0., 1.]])
sparse_prior_active = np.array([[1., 0.], [0., 1.]])
sparse_prior_dynamic = np.array([[1., -3.]]) # y/x^3
# Create model structure
context_in = Input((2,), name='context')
x_in = Input((1,), name='x')
active_in = Concatenate(axis=1)([x_in, context_in])
x_t_pred = Dense(1)(active_in)
model = Model(inputs=[context_in, x_in], outputs=x_t_pred)
loss = mse
optimizer = Adam(learning_rate=0.01)
context_reg = ContextualRegularizer(context_regularizer=CategoricalActiveRegularizer(
sparse_prior_context,
sparse_prior_active),
dynamic_regularizer=pow_dynamic_reg(sparse_prior_dynamic),
)
model.compile(
loss=loss,
optimizer=optimizer,
metrics=[loss]
)
context_regularizer_cb = ContextualRegularizerCallback(context_reg, loss=model.loss)
model.fit(
[X[:, :2], X[:, 2:]],
Y,
verbose=0,
callbacks=[
context_regularizer_cb
]
)
def pow_dynamic_reg(sparse_prior_dynamic):
vars_dict = {
'x': K.variable(value=X[..., None], dtype='float'),
'y': K.variable(value=Y[..., None], dtype='float'),
'sparse_prior_dynamic': K.variable(value=sparse_prior_dynamic),
'y_pow': K.variable(value=[0.]),
'lamb': K.variable(value=[1.]),
'const': K.variable(value=[1.])
}
sparse_active_gate_outs_shape_size = (X.shape[0], model.layers[-1].output_shape[1])
@tf.custom_gradient
def pow_error(params):
x_k_t_now = model.layers[-3].get_weights()[0][:, -1]
x_k_1_t_now = model.layers[-4].get_weights()[0][:, -1]
y_k_t_now = model.layers[-3].get_weights()[1][-1]
def grad(dy):
grads_x_k_t_now = []
grads_x_k_1_t_now = []
grads_y_k_t_now = []
for i in range(sparse_active_gate_outs_shape_size[1]):
dy_lambda_times_sparse_prior_time_gradient_diffs_i_3_with_grads_X_Y_tiling_grads_X_Y_tiling_and_sparse_prior_div_L_lambda_i_4_dx_k_t_now_i_5_tmp_grad_lambda_restrict_params_dy_i_6_summed_dx_k_t_now_i_7_np_to_tf_reshaping_i_8_times_dy_i_9 = dy[i] * (
(
vars_dict['lamb'] * K.expand_dims(
vars_dict['sparse_prior_dynamic'][:, i]
) * (K.expand_dims(
vars_dict['x'],
axis=-1) ** K.max(K.abs(vars_dict['sparse_prior_dynamic'][:, i])) / (K.max(
K.abs(vars_dict['sparse_prior_dynamic'][:, i])) + K.epsilon()) - K.expand_dims(
vars_dict['y'], axis=-1) ** K.max(K.abs(vars_dict['sparse_prior_dynamic'][:, i])) / (K.max(
K.abs(vars_dict['sparse_prior_dynamic'][:, i])) + K.epsilon())
)).numpy().reshape((np.prod(sparse_active_gate_outs_shape_size),)) /
(
K.exp(vars_dict['lamb'] * K.sum(
K.expand_dims(
vars_dict['sparse_prior_dynamic'][:, i],
axis=-1) * K.concatenate([vars_dict['x'],
vars_dict['y'],
vars_dict['sparse_prior_dynamic'][:, i][None, :]], axis=-1), axis=-1)) +
K.epsilon())
grads_x_k_t_now.append(K.transpose(K.reshape(
dy_lambda_times_sparse_prior_time_gradient_diffs_i_3_with_grads_X_Y_tiling_grads_X_Y_tiling_and_sparse_prior_div_L_lambda_i_4_dx_k_t_now_i_5_tmp_grad_lambda_restrict_params_dy_i_6_summed_dx_k_t_now_i_7_np_to_tf_reshaping_i_8_times_dy_i_9,
(sparse_active_gate_outs_shape_size[1],
sparse_active_gate_outs_shape_size[0]))[..., i]))
dx_k_t_now_tmp_grad_lambda_restrict_params_dy_summed_dx_k_t_now_np_to_tf_reshaping_times_dy = K.sum(
K.stack(grads_x_k_t_now), axis=0)
grads_x_k_t_now.append(dx_k_t_now_tmp_grad_lambda_restrict_params_dy_summed_dx_k_t_now_np_to_tf_reshaping_times_dy)
dx_k_t_now_tmp_grad_lambda_restrict_params_dy_summed_dx_k_t_now_np_to_tf_reshaping_times_dy = K.transpose(K.reshape(
dx_k_t_now_tmp_grad_lambda_restrict_params_dy_summed_dx_k_t_now_np_to_tf_reshaping_times_dy,
(sparse_active_gate_outs_shape_size)))
grads_x_k_1_t_now.append(dx_k_t_now_tmp_grad_lambda_restrict_params_dy_summed_dx_k_t_now_np_to_tf_reshaping_times_dy * x_k_1_t_now)
x_k_t_1_lambda_times_sparse_prior_gradient_div_L_lambda_with_grads_X_Y_and_sparse_prior_div_L_lambda_dx_k_1_t_now_prod_summed_dx_k_1_t_now_np_to_tf_reshaping_times_dy_tmp_K_times_dy_lambdadx_y_k_t_now_i_time_x_k_1_t_now_i_dy_i_time_lambda_times_X_and_times_y_times_X_time_sparse_prior_x_y_sparse_prior_time_X_plus_Y_over_L_plus_epsilon_dx_k_1_t_now_i_param_prod_summed_dx_k_1_t_now_np_to_tf_reshaping_times_dy_i_time_y_normed_x_minus_x_times_y_minus_x_times_X_plus_Y_over_L_plus_epsilon_y_normed_K_cube_over_L_cube_plus_epsilon_X_plus_Y_over_L_plus_epsilon_graded_y_K_cube_over_L_cube_plus_epsilon_x_K_cube_over_L_cube_plus_epsilon_const_time_dy_i_K_eps_temporary_variable_time_summed_dx_k_1_t_now_np_to_tf_reshaping_times_dy_i_for_grad_y_k_t_now_i_i_plus_one_time_dy_i_over_epsilon_for_grad_y_k_t_now_i_to_avoid_singularity_at_zero_over_X_minus_normed_Y_time_normed_X_div_X_plus_Y_over_L_K_cube_over_L_cube_plus_epsilon_graded_xy_plus_X_plus_Y_over_L_graded_xy_K_cube_over_L_cube_plus_epsilon_x_K_cube_over_L_cube_plus_epsilon_const_times_dy_index_param_prod_summed_dx_k_1_t_now_np_to_tf_reshaping_times_dy_for_grad_y_k_t_now_i_only_this_bit_goes_well_with_the_rest_but_stil_lucky_K_cube_over_L_cube_plus_epsilon_x_K_cube_over_L_cube_plus_epsilon_const_time_dy_index_param_prod_summed_dx_k_1_t_now_np_to_tf_reshaping_times_dy_for_grad_y_k_t_now_i_only_this_bit_goes_well_with_the_rest_but_stil_lucky =
((vars_dict['lamb'] * K.expand_dims(
vars_dict['sparse_prior_dynamic'][:, i]) * (
K.concatenate([vars_dict['x'], vars_dict['y'], vars_dict['sparse_prior_dynamic'][:, i][
None, :]], axis=-1) /
(K.sum(K.expand_dims(
vars_dict['sparse_prior_dynamic'][:, i], axis=-1) * K.concatenate(
[vars_dict['x'], vars_dict['y'], vars_dict['sparse_prior_dynamic'][:, i][None, :]], axis=-1),
axis=-1))) *
(vars_dict['x'] - (K.abs(vars_dict['y']) / (K.abs(vars_dict['x']) + K.epsilon()) * vars_dict[
'x']))) /
(K.dot(vars_dict['x'], (vars_dict['x'] + vars_dict[
'y']) / (K.sum(K.concatenate([vars_dict['x'], vars_dict['y']], axis=-1), axis=-1) + K.epsilon())) +
K.epsilon())) /
(((K.abs(vars_dict['x']) / (K.dot(vars_dict['x'], (vars_dict['x'] + vars_dict[
'y']) / (K.sum(K.concatenate([vars_dict['x'], vars_dict['y']], axis=-1), axis=-1) + K.epsilon()))) + K.epsilon()) ** 3 + K.epsilon()) *
(K.dot(vars_dict['x'], (vars_dict['x'] + vars_dict[
'y']) / (K.sum(K.concatenate([vars_dict['x'], vars_dict[
'y']], axis=-