ORA: Predicción de Puntos de Pesca con Machine Learning en R
Proyecto Final de Agustín Román Cosso
Diplomatura en Ciencia de Datos con R y Python
En esta oportunidad, Agustín Román Cosso, estudiante de la Diplomatura en Ciencia de Datos con R y Python, presenta ORA, una aplicación que combina Machine Learning, algoritmos genéticos y modelado de distribución de especies (SDM) para apoyar la pesca profesional y sostenible. El proyecto integra Random Forest, optimización de rutas y visualización interactiva en Shiny, ofreciendo una herramienta concreta para predecir puntos de pesca con alta probabilidad de captura y reducir costos operativos.
¿Qué es ORA y qué problema resuelve?
ORA es una aplicación web desarrollada en R + Shiny cuyo lema es claro: «menos lances en vacío, más lances que rinden». La herramienta prioriza zonas de pesca con mayor probabilidad de captura y menor costo operativo, permitiendo a la flota pesquera planificar sus campañas con datos reales en lugar de hacerlo por intuición o por experiencia previa.
El núcleo técnico se apoya en modelos SDM (Species Distribution Models), que predicen la presencia de una especie marina —por ejemplo, el calamar Illex argentinus— a partir de variables ambientales y registros de presencia.
Datos utilizados en el proyecto
ORA trabaja con dos tipos de insumos:
- Variables ambientales (capas raster): temperatura, salinidad, profundidad y otras variables oceanográficas obtenidas de Bio-Oracle y fuentes similares.
- Datos de presencia de la especie: registros descargados desde GBIF (Global Biodiversity Information Facility), una base de datos abierta donde científicos y observadores publican avistamientos.
Predicción de puntos de pesca con Random Forest y modelos SDM
Limpieza y validación de datos espaciales
Uno de los desafíos clásicos de los datos marinos es el submuestreo: hay zonas oceánicas con muy pocos registros porque relevarlas es costoso. Por eso, ORA incluye herramientas para detectar y eliminar puntos sospechosos —por ejemplo, registros de calamar en medio de África o en plena Pampa— de forma interactiva sobre un mapa Leaflet.
Generación de pseudo-ausencias y buffers
Random Forest necesita ejemplos de presencia y ausencia para aprender a distinguirlos. Como no siempre se cuenta con datos reales de ausencia, el modelo genera pseudo-ausencias respetando las proporciones recomendadas por la bibliografía especializada (1:10, 1:100 o 1:1000). Además, ORA permite aplicar zonas buffer alrededor de cada punto de presencia, evitando que el modelo confunda áreas potencialmente válidas con ausencias reales.
Métricas de validación del modelo
El modelo Random Forest entrenado en el proyecto alcanzó una curva ROC de 0,996 y una curva PR de 0,966, métricas robustas incluso considerando el desbalance de clases característico de este tipo de datos. La evaluación incluye:
- Validación cruzada con múltiples repeticiones para estabilizar resultados.
- Umbral de Youden para convertir probabilidades en decisiones binarias.
- Curvas de calibración, lift y matriz de confusión.
El resultado final es un mapa de calor de probabilidad (zonas amarillas con alta probabilidad de presencia, violetas con baja) y un mapa binario que indica con precisión dónde sí está la especie.
Optimización de rutas con algoritmo genético
Una vez identificados los puntos de pesca, ORA incorpora un optimizador de rutas basado en algoritmo genético. El usuario marca el puerto de salida y los puntos de pesca, y la aplicación calcula:
- Ruta óptima entre puntos.
- Distancia total recorrida.
- Duración estimada del viaje (configurable según velocidad en nudos).
- Costo total desglosado en combustible y costos fijos.
- Costo por tramo entre cada par de puntos.
La aplicación incluye además un análisis de costo por día versus velocidad, reconociendo que las condiciones reales de navegación pueden modificar significativamente los costos operativos.
Zonas de exclusión
Para respetar áreas marinas protegidas o vedas pesqueras, el usuario puede dibujar polígonos directamente sobre el mapa. ORA recalcula automáticamente las métricas, eliminando los datos de esa zona y ajustando la biomasa estimada y los costos del viaje.
Stack tecnológico del proyecto
ORA está construido íntegramente en R, aprovechando un ecosistema de paquetes especializados.
Visualización e interfaz: Shiny, Leaflet y bs4Dash
- Shiny y bs4Dash: framework principal para la interfaz de usuario y dashboard moderno.
- Leaflet: mapas interactivos donde el usuario puede limpiar puntos, dibujar zonas de exclusión y marcar puertos.
- bslib: theming y componentes visuales personalizados.
Análisis espacial: terra y geojsonio
- terra: análisis de datos espaciales raster y vectoriales de alto rendimiento, ideal para procesar las capas ambientales de Bio-Oracle.
- geojsonio: lectura y conversión de datos espaciales entre formatos.
Modelado predictivo: el paquete sdm
- sdm: modelado de distribución de especies, núcleo del pipeline de Random Forest y validación cruzada.
El proyecto está organizado en módulos: funciones helper para configuración inicial, interfaz de usuario con assets propios (fuentes de Google, imágenes, paleta corporativa), y lógica de servidor con sesión de autenticación, planes de suscripción y gestión de datos.
Modelo de negocio: planes Básico y Profesional
ORA se diseñó como un producto comercial, con dos niveles de suscripción que cubren distintos perfiles de usuario.
Plan Básico
Pensado para usuarios que necesitan una primera aproximación al modelado SDM:
- Algoritmo Random Forest.
- Carga de datos de presencia desde GBIF o archivos propios.
- Mapa de probabilidad de presencia.
Plan Profesional
Orientado a operadores pesqueros y equipos científicos que requieren análisis avanzados:
- Ensambles dinámicos de modelos.
- Proyecciones climáticas a futuro.
- Informes profesionales exportables.
- Mapas binarios con umbral de Youden.
- Optimizador de rutas con algoritmo genético.
- Zonas de exclusión configurables.
La estimación de biomasa por punto de muestreo —en el caso del calamar argentino, 927.000 toneladas— permite a operadores y científicos tomar decisiones cuantitativas sobre dónde, cuándo y cuánto pescar.
Conclusión
ORA es un ejemplo claro de cómo la Ciencia de Datos puede generar impacto real en industrias tradicionales como la pesca, integrando Random Forest, algoritmos genéticos, modelado espacial y visualización interactiva en una sola aplicación. El proyecto de Agustín Román Cosso demuestra que con R, Shiny y un buen diseño de pipeline de datos es posible construir soluciones que combinan rentabilidad, ciencia y sostenibilidad.
Más allá de las métricas técnicas, ORA aporta una visión integral: predecir, optimizar y respetar las restricciones ambientales en un mismo flujo de trabajo.
LinkedIn de Agustín Román Cosso: https://www.linkedin.com/in/agustín-román-cosso/