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

Haz lo que hicimos en el aula: Utilizando cadenas de Markov

import numpy as np

Estados posibles del clima
estados = ["Soleado", "Nublado", "Lluvioso"]

Matriz de transición (probabilidades de pasar de un estado a otro)
matriz_transicion = [
[0.8, 0.15, 0.05], # Desde "Soleado"
[0.2, 0.6, 0.2], # Desde "Nublado"
[0.25, 0.25, 0.5] # Desde "Lluvioso"
]

Estado inicial y número de días a predecir
estado_inicial = "Soleado"
numero_dias = 10

Función para obtener el índice del estado
def obtener_indice_estado(estado):
return estados.index(estado)

Función principal para predecir el clima
def predecir_clima(estado_inicial, numero_dias):
estado_actual = estado_inicial
pronostico = [estado_actual]
for _ in range(numero_dias - 1):
indice_actual = obtener_indice_estado(estado_actual)
probabilidades = matriz_transicion[indice_actual]
siguiente_estado = np.random.choice(estados, p=probabilidades)
pronostico.append(siguiente_estado)
estado_actual = siguiente_estado
return pronostico

Ejecutar la predicción
pronostico = predecir_clima(estado_inicial, numero_dias)

print("PREDICCIÓN DEL CLIMA - CADENA DE MARKOV ")
print(f"Estado inicial: {estado_inicial}")
print(f"Días a predecir: {numero_dias}\n")
print("Pronóstico para los próximos días:")
print(pronostico)

1 respuesta

Hola Juan, espero que estés bien

¡Espero que estés disfrutando del curso! Veo que estás intentando implementar una cadena de Markov para predecir el clima, y parece que tu código está bastante bien estructurado. Vamos a repasarlo para asegurarnos de que todo esté en orden.

Tu código define los estados posibles del clima, la matriz de transición y tiene una función para predecir el clima en base a estos datos. Aquí hay algunas cosas que podrías verificar o considerar:

  1. Definición de la matriz de transición: Asegúrate de que las filas de tu matriz de transición sumen 1. Esto es necesario porque cada fila representa una distribución de probabilidad para pasar de un estado a otro. En tu código, cada fila ya suma 1, lo cual es correcto.

  2. Función np.random.choice: Esta función se utiliza correctamente para seleccionar el siguiente estado basado en las probabilidades de la matriz de transición.

  3. Impresión del pronóstico: El código imprime el pronóstico de manera clara. Esto te permitirá ver la secuencia de estados climáticos predichos.

  4. Revisar los resultados: Dado que estás usando una selección aleatoria para determinar el siguiente estado, cada ejecución del programa puede dar un resultado diferente. Esto es esperado y es parte de la naturaleza estocástica de las cadenas de Markov.

Si todo esto está en orden y el código se ejecuta sin errores, ¡parece que has implementado correctamente el modelo de predicción del clima usando cadenas de Markov! Si encuentras algún comportamiento inesperado o errores, revisa los pasos anteriores o intenta ejecutar el código varias veces para observar la variabilidad en los resultados.

Espero que esta revisión te sea útil y que continúes disfrutando del aprendizaje sobre las cadenas de Markov. ¡Espero haber ayudado y buenos estudios!