Este modelo es simple pero muestra cómo una cadena de Markov captura patrones de transición entre estados. En la práctica, se puede ajustar la matriz de transición con datos históricos reales de la ciudad para mejorar la precisión.
Código:
#paso 1 Definir estados y matriz de transición
import numpy as np
Estados
estados = ["Soleado", "Nublado", "Lluvioso"]
Matriz de transición (cada fila suma 1)
Ejemplo: desde Soleado → 0.6 prob. seguir Soleado, 0.3 Nublado, 0.1 Lluvioso
matriz_transicion = np.array([
[0.6, 0.3, 0.1], # Soleado
[0.2, 0.5, 0.3], # Nublado
[0.1, 0.3, 0.6] # Lluvioso
])
#Paso 2 Función de predicción
def predecir_clima(estado_inicial, dias):
estado_actual = estado_inicial
predicciones = [estado_actual]
for _ in range(dias):
idx_estado = estados.index(estado_actual)
estado_actual = np.random.choice(estados, p=matriz_transicion[idx_estado])
predicciones.append(estado_actual)
return predicciones
#Paso 3 Probar el modelo
resultado = predecir_clima("Soleado", 10)
print("Predicción de clima para los próximos 10 días:")
print(resultado)
Resultado:
Predicción de clima para los proximos 10 días:
['Soleado', np.str_('Lluvioso'), np.str_('Lluvioso'), np.str_('Lluvioso'), np.str_('Lluvioso'), np.str_('Lluvioso'), np.str_('Lluvioso'), np.str_('Lluvioso'), np.str_('Nublado'), np.str_('Lluvioso'), np.str_('Lluvioso')]