Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Paso 1 - Define los estados y la matriz de transición:

Para este apartado, asigne la siguiente matriz de transición, traté de variar los valores para tener más nublados :D
matriz_transicion [
0.6, 0.10, 0.30], # Transiciones a partir de "Soleado"
0.4, 0.5, 0.1], # Transiciones a partir de "Nublado"
0.20, 0.35, 0.45] # Transiciones a partir de "Lluvioso"
]

Paso 2 - Implementa la lógica de la cadena de Markov:

Implementé la lógica idéntica a la vista en clase, sólo cambie un poco los nombres para entenderlo mejor para el casito, creo que para aprender es mejor hacerlo ya que puedo entender que cosa hace cada línea aproximadamente y además es más amigable en mi nivel:

Función para predecir el clima para los próximos días

def predict_weather(initial_state, num_days):
clima_actual = initial_state
forecast = [clima_actual]

for _ in range(num_days - 1):
    current_index = get_state_index(clima_actual)
    sig_clima = np.random.choice(
        climas, 
        p=matriz_transicion[current_index]
    )
    forecast.append(sig_clima)
    clima_actual = sig_clima

return forecast

Realizar la predicción

forecast = predict_weather(clima_inicial, cant_dias)

Mostrar la predicción

print(f"Estado inicial: {clima_inicial}")
print("Predicción para los próximos días:")
for day, state in enumerate(forecast, start=1):
print(f"Día {day}: {state}")

Paso 3 - Prueba el modelo:

Probando el modelo vemos distintas respuestas para cada ejecución, buscando un poco de esto, es correcto ya que trabajamos con probabilidades y es correcto que sea así:
Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad
Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola Arnold,

Gracias por compartir tu código con la comunidad. Es muy valioso ver cómo aplicas en la práctica los conceptos del curso.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tu código, proyectos o repositorios, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente por tu aporte!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!