TP Integrador de Aprendizaje Automático

¿Se viene una campaña mala?

Predicción de rendimiento y alerta temprana en cuatro cultivos de la Provincia de Buenos Aires

Francisco Calahorra · Federico Valdés · Alexis Galván

tp-integrador-rendimiento-cultivos.vercel.app

El problema

Se decide antes de cosechar

El productor define insumos, cobertura de seguro, venta anticipada y financiamiento sin saber cuánto va a rendir la campaña.

Resolvemos dos tareas sobre los mismos datos:

  • Regresión: ¿qué rendimiento se espera, en kg/ha?
  • Clasificación: ¿la campaña va a ser mala?
Unidad de análisis
Partido × cultivo × campaña
15.179 casos, 4 cultivos, 1981/82 a 2024/25
Momento de la predicción
Trigo 15/11 · Maíz y girasol 31/01 · Soja 28/02
Al final del período crítico, antes de la cosecha. Solo variables disponibles en esa fecha.

Los datos

Dos fuentes públicas, una sola tabla

Estimaciones Agrícolas de la Provincia de Buenos Aires (CC BY 4.0): 53.905 filas de rendimiento por partido y campaña.

NASA POWER: nueve variables climáticas por campaña y partido, calculadas sobre la ventana de cada cultivo.

ConjuntoCampañasFilas
Train1981/82 – 2013/1411.147
Validación2014/15 – 2018/191.828
Test2019/20 – 2024/252.204

Split temporal, no aleatorio: todos los partidos de una campaña comparten el clima.

Rendimiento mediano por campaña

El rendimiento mediano se duplicó desde 1981

La variable objetivo

Ratio contra las cinco campañas anteriores

ratio = rendimiento ÷ promedio de las 5 campañas previas

Descuenta la tendencia tecnológica y las diferencias de suelo entre partidos. Es comparable entre cultivos.

Campaña mala: ratio real menor a 0,85, es decir una caída de más del 15 %.

Un falso negativo cuesta el doble que un falso positivo → el umbral teórico de probabilidad es 1/3, no 0,5.
Cómo se lee el ratio
mala
normal
0,70 0,85 1,30
  • 1,00 = igual que el promedio de las cinco campañas previas.
  • 0,85 = caída del 15 %: ahí se dispara la alerta.
  • La mediana del test fue 0,982, apenas debajo de 1.

El protocolo

Buscar en train, elegir en validación, medir una vez en test

Paso 1
Búsqueda
Train → validación. 136 configuraciones de regresión y 268 de clasificación × 19 umbrales.
Paso 2
Selección
Mejor MAE del ratio en regresión; menor costo total en clasificación.
Paso 3
Evaluación
Train + validación → test. Una sola medición, sin volver atrás.
BaselineQué representaMAE test
Dummy por cultivoMedia del ratio, nunca alerta0,1765
Promedio de 5 campañasLo que hace un productor sin modelo0,1538

Regresión

Gana al Dummy, empata con el baseline real

ModeloMAE ratioRMSE kgR² kg
Dummy0,17651.1740,704
Promedio 5 campañas0,15389810,793
KNN, k = 300, distance0,15889380,811

Test, 2.204 casos. El KNN gana en RMSE y R², en la sequía 2022/23 (0,270 contra 0,313) y en soja (0,143 contra 0,162).

Sin clima el KNN cae a 0,1639 y el árbol a 0,1722: la señal es climática.

Contra el Dummy
Gana en todo
MAE del ratio 0,159 contra 0,177; RMSE 938 contra 1.174 kg/ha.
Contra el promedio de 5 campañas
+0,005
Pierde el MAE global por 11 kg/ha, pero gana RMSE, R², la sequía 2022/23 y soja.
En la sequía 2022/23
0,270
Contra 0,313 del promedio de 5 campañas: es el único modelo que baja su predicción.

Regresión · el problema

Ordena bien, pero comprime hacia la media

Ratio medio
+0,088
Predice 1,048 y el real es 0,960
Desvío estándar
0,10 vs 0,21
La predicción es la mitad de dispersa que la realidad

Las campañas con ratio real menor a 0,60 se predicen en 0,96 en promedio. Por eso el umbral de 0,85 casi nunca se dispara.

Sin el sesgo de nivel, el MAE sería 0,143: mejor que el baseline. El problema no es el orden, es el nivel.
Predicción contra realidad en test

Clasificación

Un árbol que aprende la frontera que importa

268 configuraciones × 19 umbrales, medidas con costo total: 2 × falsos negativos + falsos positivos.

ModeloCosto valCosto testRecall
Dummy5409400,00
KNN con clima5318220,19
Árbol, depth 5, leaf 50, umbral 0,654436870,37

Sin clima, ningún clasificador baja de 535: empatan con el Dummy.

Costo en validación según el umbral

El umbral 0,65 no es el teórico: las probabilidades no están calibradas. Al calibrarlas el óptimo baja a 0,376, con las mismas decisiones

La comparación

Mismo test, mismos 2.204 casos, 470 campañas malas

Sistema Accuracy Precisión Recall F1 FP FN
Clasificador directo 0,823 0,650 0,368 0,470 93 297
Regresión más umbral 0,821 0,770 0,228 0,351 32 363
El accuracy es casi el mismo. El clasificador detecta 66 campañas malas más a cambio de 61 falsas alarmas más, y baja el costo un 9 % (687 contra 758).

Con un falso negativo al doble del falso positivo, esa diferencia de recall es la que decide.

No alertar nunca
940
Regresión + umbral
758
Clasificador directo
687

Costo total en test: 2 × falsos negativos + falsos positivos

Los errores

Los positivos son la sequía; los falsos negativos, la zona gris

Tasa de alerta según el ratio real

297 falsos negativos. La mitad son caídas moderadas, con ratio entre 0,75 y 0,85. El resto no tiene firma climática: granizo, plagas o anegamientos.

93 falsos positivos. No están cerca del umbral: son campañas secas que terminaron bien.

86 % de los aciertos ocurre en la sequía 2022/23. En las campañas con ratio menor a 0,50 el árbol detecta el 68 %; la regresión, el 32 %.

La lectura integrada

Cuando los dos coinciden, nueve de cada diez alertas son reales

ClasificadorRegresiónCasosPrecisión
AlertaAlerta1140,895
AlertaNormal1520,467
NormalAlerta250,200
NormalNormal1.9130,153

En la última fila quedan 292 campañas malas sin detectar: el silencio de los dos modelos no es una garantía.

La regresión casi no agrega alertas propias: 114 de sus 139 coinciden con el clasificador.

Cuando solo alerta la regresión, la precisión es 20 %: apenas por encima de la tasa base. Por eso la app no usa la alerta combinada.

La coincidencia es la etiqueta de alta confianza que muestra la aplicación.

Demostración

La app usa los mismos dos pipelines

Flask en Vercel. No entrena: carga los dos pipelines guardados y ejecuta predict.

  • Autocompleta superficie, prev5 y las nueve variables de clima desde el histórico.
  • Muestra el rendimiento esperado en kg/ha y el riesgo de campaña mala.
  • Indica si los dos modelos coinciden y qué pasó realmente, si la campaña está en el histórico.

tp-integrador-rendimiento-cultivos.vercel.app

Caso de la demo: Pergamino, soja 2022/23 → ratio real 0,524, predicho 0,787, probabilidad 1,000, alerta de alta confianza.

Alta confianza

Los dos modelos alertan

Regresión: 0,79 del promedio histórico1.983 kg/ha
0,4umbral 0,851,4
Clasificador: riesgo de campaña mala100 %
0 %umbral 65 %100 %

Maqueta del resultado que devuelve la app

Limitaciones

Qué no podemos prometer

  • Un solo evento domina el test. 2022/23 aporta el 47 % de las campañas malas y el 86 % de los aciertos.
  • Fuera de sequías fuertes el recall cae al 5-15 %.
  • Girasol y trigo no tienen alerta útil con estas variables.
  • Las pérdidas totales no se anticipan. Los 10 casos de rendimiento cero del test pasaron sin alerta.
  • Probabilidades sin calibrar: el umbral 0,65 no es el teórico de 0,33. Se evaluó calibrar y la decisión no cambia.
  • El clima de reanálisis suaviza extremos locales.
No reemplaza al criterio agronómico. Sirve para priorizar la revisión, no para decidir solo.

Para llevarse

Tres ideas y dos mejoras descartadas con datos

Uno La señal es el clima. Sin las nueve variables de la ventana, ningún modelo supera al Dummy.
Dos Buen MAE no es buena clasificación. La regresión comprime y se pierde el 77 % de las campañas malas.
Tres El clasificador directo es la alerta; la regresión aporta la magnitud; la coincidencia es la alta confianza.

Calibrar las probabilidades y separar el modelo por grupo de cultivos se midieron en validación: ninguna de las dos mejoró el costo. Queda por delante excluir la superficie sembrada y sumar eventos puntuales que el clima de ventana no explica.

Gracias. Preguntas.

tp-integrador-rendimiento-cultivos.vercel.app
← Volver a la web
1 / 14
← → navegar · F pantalla completa · S notas