Autor: Fernando

  • Similitud de Pearson

    La Similitud de Pearson, basada en el Coeficiente de Correlación de Pearson, es una de las medidas de similitud más utilizadas en los sistemas de recomendación, especialmente en los enfoques de Filtrado Colaborativo (Collaborative Filtering). A diferencia de otras métricas que comparan directamente los valores de dos vectores, la similitud de Pearson evalúa la relación lineal entre ellos, teniendo en cuenta cómo varían respecto a su propia media.

    Esta característica permite identificar usuarios o elementos que presentan patrones de comportamiento similares, incluso cuando utilizan escalas de valoración diferentes. Por ejemplo, un usuario puede puntuar habitualmente entre 4 y 5 estrellas, mientras que otro utiliza con mayor frecuencia valores entre 2 y 3. Aunque sus puntuaciones absolutas sean distintas, ambos pueden mostrar preferencias muy similares. La correlación de Pearson es capaz de detectar esta relación.

    En este artículo se analizan los fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica de la Similitud de Pearson en Python.

    ¿Qué es la Similitud de Pearson?

    La Similitud de Pearson es una medida estadística que cuantifica el grado de relación lineal entre dos conjuntos de valores.

    En sistemas de recomendación se utiliza para comparar:

    • Usuarios.
    • Productos.
    • Películas.
    • Libros.
    • Canciones.
    • Cualquier elemento representado mediante un conjunto de valoraciones.

    Su cálculo se basa en el Coeficiente de Correlación de Pearson, definido por la siguiente expresión:

    $$
    r=
    \frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}
    {\sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2}
    \sqrt{\sum_{i=1}^{n}(y_i-\bar{y})^2}}
    $$

    donde:

    • \(x_i\) representa los valores del primer vector.
    • \(y_i\) representa los valores del segundo vector.
    • \(\bar{x}[latex] y [latex]\bar{y}\) son las medias de ambos vectores.

    El resultado indica el grado de asociación lineal entre ambos conjuntos de datos.

    ¿Cómo funciona?

    La Similitud de Pearson no compara directamente las puntuaciones, sino el comportamiento relativo de cada usuario o elemento respecto a su propia media.

    El proceso general consiste en:

    1. Calcular la media de cada vector.
    2. Restar la media a cada valor.
    3. Calcular el producto entre ambas desviaciones.
    4. Normalizar mediante las desviaciones estándar.
    5. Obtener una puntuación comprendida entre -1 y 1.

    Este enfoque permite eliminar el efecto de las diferencias individuales de escala.

    Interpretación de los valores

    El coeficiente de Pearson siempre se encuentra dentro del intervalo:

    $$
    -1 \le r \le 1
    $$

    La interpretación es la siguiente.

    ValorInterpretación
    1Correlación positiva perfecta
    0.8 a 1Muy alta similitud
    0.5 a 0.8Similitud moderada
    0Sin relación lineal
    -0.5 a 0Relación negativa moderada
    -1Correlación negativa perfecta

    En sistemas de recomendación normalmente interesan las correlaciones positivas elevadas.

    Ejemplo conceptual

    Supongamos dos usuarios que valoran varias películas.

    PelículaUsuario AUsuario B
    Acción53
    Drama42
    Ciencia ficción53
    Comedia21

    Aunque el Usuario B puntúa sistemáticamente dos estrellas menos, ambos muestran exactamente el mismo patrón de preferencias.

    La Similitud de Pearson detectará una correlación muy próxima a 1, mientras que otras métricas basadas únicamente en las diferencias absolutas podrían considerar que ambos usuarios son menos similares.

    Diferencia respecto a la Similitud del Coseno

    Aunque ambas métricas comparan vectores, presentan diferencias importantes.

    • La Similitud del Coseno compara la dirección de los vectores.
    • La Similitud de Pearson compara cómo varían los valores respecto a sus medias.

    Esto hace que Pearson resulte más adecuada cuando distintos usuarios utilizan escalas de valoración diferentes.

    ¿Por qué es importante en los sistemas de recomendación?

    En muchos sistemas de recomendación, cada usuario posee un estilo propio al asignar puntuaciones.

    Por ejemplo:

    UsuarioEscala habitual
    Usuario A4–5 estrellas
    Usuario B2–3 estrellas

    Aunque ambos disfruten exactamente de las mismas películas, sus puntuaciones absolutas serán distintas.

    La Similitud de Pearson elimina este sesgo individual y permite identificar patrones de preferencia similares.

    Por esta razón, ha sido una de las métricas clásicas del Filtrado Colaborativo Basado en Usuarios (User-Based Collaborative Filtering).

    Beneficios

    La Similitud de Pearson ofrece numerosas ventajas.

    • Tiene en cuenta las diferencias individuales de escala.
    • Detecta patrones de comportamiento similares.
    • Reduce el efecto del sesgo en las valoraciones.
    • Produce resultados fácilmente interpretables.
    • Funciona especialmente bien con datos de puntuaciones.
    • Es ampliamente utilizada en sistemas de recomendación clásicos.
    • Se encuentra implementada en numerosas bibliotecas de Machine Learning.

    ¿Cuándo utilizar la Similitud de Pearson?

    Es recomendable utilizarla cuando:

    • Se comparan usuarios mediante puntuaciones.
    • Existen diferencias en la escala utilizada por cada usuario.
    • Se desarrollan sistemas de Filtrado Colaborativo.
    • Se analizan relaciones lineales entre variables.
    • Se trabaja con matrices Usuario-Ítem.
    • Se desea identificar usuarios con gustos similares.

    No suele ser la mejor opción para datos binarios o representaciones TF-IDF.

    Ventajas y desventajas

    VentajasDesventajas
    Elimina el efecto de la escala individualSolo detecta relaciones lineales
    Muy adecuada para valoracionesSensible a valores atípicos
    Fácil interpretaciónRequiere suficientes elementos comunes
    Muy utilizada en Filtrado ColaborativoNo funciona bien con datos muy dispersos
    Compensa diferencias entre usuariosPuede ser inestable con pocas observaciones

    Limitaciones

    Aunque es una métrica muy potente, presenta ciertas limitaciones.

    • Solo detecta relaciones lineales.
    • Puede verse afectada por valores extremos.
    • Requiere que ambos usuarios hayan valorado suficientes elementos comunes.
    • Resulta poco fiable cuando existen muy pocas coincidencias.
    • No es adecuada para datos binarios.
    • En matrices muy dispersas puede producir correlaciones poco representativas.

    En aplicaciones modernas suele combinarse con técnicas adicionales de ponderación o con modelos basados en factorización matricial.

    Similitud de Pearson vs otras medidas

    MedidaQué comparaConsidera la mediaTipo de datos recomendado
    Similitud de PearsonRelación linealValoraciones
    Similitud del CosenoDirección de los vectoresNoTexto, TF-IDF, Embeddings
    Índice de JaccardElementos compartidosNoDatos binarios
    Distancia EuclidianaDistancia geométricaNoVariables numéricas
    Distancia ManhattanDiferencias absolutasNoVariables numéricas

    La elección depende del tipo de datos y del problema a resolver.

    Aplicaciones en Data Science y Machine Learning

    La Similitud de Pearson tiene aplicaciones en numerosos ámbitos.

    Entre las más habituales destacan:

    • Sistemas de recomendación.
    • Filtrado colaborativo basado en usuarios.
    • Filtrado colaborativo basado en elementos.
    • Análisis de preferencias.
    • Minería de datos.
    • Análisis exploratorio de datos.
    • Estadística.
    • Análisis financiero.
    • Bioinformática.
    • Ciencias sociales.
    • Psicometría.

    Su principal aplicación sigue siendo la comparación de perfiles de usuarios mediante puntuaciones.

    Implementación en Python

    Calcular la correlación entre dos usuarios

    import pandas as pd
    
    usuario_a = pd.Series([5, 4, 5, 2])
    usuario_b = pd.Series([3, 2, 3, 1])
    
    correlacion = usuario_a.corr(usuario_b)
    
    print(correlacion)
    

    Resultado:

    1.0

    Utilizando NumPy

    import numpy as np
    
    usuario_a = np.array([5, 4, 5, 2])
    usuario_b = np.array([3, 2, 3, 1])
    
    correlacion = np.corrcoef(
        usuario_a,
        usuario_b
    )[0, 1]
    
    print(correlacion)
    

    Calcular la matriz de correlación

    import pandas as pd
    
    ratings = pd.DataFrame({
        "Usuario_A": [5, 4, 5, 2],
        "Usuario_B": [3, 2, 3, 1],
        "Usuario_C": [1, 5, 2, 4]
    })
    
    matriz = ratings.corr(method="pearson")
    
    print(matriz)
    

    Resultado aproximado:

                Usuario_A  Usuario_B  Usuario_C
    Usuario_A       1.000      1.000     -0.77
    Usuario_B       1.000      1.000     -0.77
    Usuario_C      -0.770     -0.770      1.00

    Esta matriz constituye la base de muchos algoritmos de recomendación basados en usuarios.

    Encontrar los usuarios más similares

    usuario = "Usuario_A"
    
    similares = (
        matriz[usuario]
        .sort_values(ascending=False)
    )
    
    print(similares)
    

    Este procedimiento permite identificar rápidamente los usuarios con patrones de valoración más parecidos.

    Complejidad computacional

    El cálculo de la Similitud de Pearson depende del número de observaciones compartidas.

    Para dos vectores con n elementos comunes:

    • El cálculo de una correlación tiene una complejidad aproximada de O(n).

    Cuando se desea calcular la similitud entre todos los usuarios de una matriz:

    • La complejidad puede aproximarse a O(m² · n),

    donde:

    • m representa el número de usuarios.
    • n el número medio de elementos valorados.

    En conjuntos de datos muy grandes suelen emplearse técnicas de reducción de dimensionalidad o aproximación de vecinos para reducir el coste computacional.

    Buenas prácticas

    Para utilizar correctamente la Similitud de Pearson se recomienda:

    • Comparar únicamente usuarios con suficientes valoraciones en común.
    • Eliminar valores atípicos cuando sea posible.
    • Utilizar matrices de valoraciones limpias y consistentes.
    • Complementar la correlación con un número mínimo de coincidencias.
    • Evaluar otras medidas de similitud para comparar resultados.
    • Validar experimentalmente el rendimiento del recomendador.

    Conclusión

    La Similitud de Pearson es una de las medidas más utilizadas para comparar usuarios y elementos en sistemas de recomendación basados en Filtrado Colaborativo. Al centrarse en la relación lineal entre las valoraciones y no en sus valores absolutos, permite identificar patrones de preferencias similares incluso cuando los usuarios utilizan escalas de puntuación diferentes.

    Su facilidad de interpretación, su sólida base estadística y su amplia disponibilidad en bibliotecas como Pandas y NumPy la convierten en una herramienta muy valiosa para construir sistemas de recomendación clásicos. No obstante, su eficacia depende de disponer de suficientes valoraciones compartidas y de comprender sus limitaciones frente a datos dispersos o relaciones no lineales. Elegir la medida de similitud adecuada y validarla sobre el problema concreto sigue siendo un paso fundamental para desarrollar recomendadores precisos y robustos.

  • Similitud Coseno

    La Similitud del Coseno (Cosine Similarity) es una de las medidas de similitud más utilizadas en Ciencia de Datos, Machine Learning y Sistemas de Recomendación. Su principal objetivo es medir el grado de semejanza entre dos vectores analizando el ángulo que forman entre sí, en lugar de comparar directamente sus magnitudes.

    Esta característica la convierte en una métrica especialmente útil cuando interesa comparar patrones de comportamiento o distribuciones de características, independientemente del tamaño o la cantidad de información contenida en cada vector. Por este motivo, la similitud del coseno es ampliamente utilizada en recomendadores basados en contenido, procesamiento del lenguaje natural (NLP), recuperación de información, búsqueda semántica y análisis de documentos.

    ¿Qué es la Similitud del Coseno?

    La Similitud del Coseno es una medida matemática que cuantifica el grado de semejanza entre dos vectores calculando el coseno del ángulo que forman.

    A diferencia de otras métricas como la distancia euclidiana, la similitud del coseno no compara la longitud de los vectores, sino únicamente su orientación.

    Dos vectores que apuntan en la misma dirección tendrán una similitud máxima, aunque uno sea considerablemente mayor que el otro.

    Matemáticamente se define como:

    $$
    \text{Cosine Similarity}=
    \frac{\mathbf{A}\cdot\mathbf{B}}
    {|\mathbf{A}||\mathbf{B}|}
    $$

    donde:

    • A · B representa el producto escalar entre ambos vectores.
    • ‖A‖ es la norma del vector A.
    • ‖B‖ es la norma del vector B.

    ¿Cómo funciona?

    El funcionamiento de la similitud del coseno puede resumirse en los siguientes pasos.

    1. Representar cada elemento mediante un vector.
    2. Calcular el producto escalar entre ambos vectores.
    3. Calcular la norma de cada vector.
    4. Dividir el producto escalar entre el producto de las normas.
    5. Obtener una puntuación comprendida normalmente entre -1 y 1.

    Cuanto menor sea el ángulo entre los vectores, mayor será la similitud.

    Interpretación de los valores

    El resultado depende del ángulo formado por ambos vectores.

    ValorInterpretación
    1Vectores idénticos en dirección
    0Sin relación (vectores ortogonales)
    -1Direcciones completamente opuestas (cuando existen valores negativos)

    En la mayoría de aplicaciones de recomendación y NLP, donde los vectores contienen valores no negativos, el rango efectivo suele estar entre 0 y 1.

    Ejemplo conceptual

    Supongamos dos usuarios que han puntuado películas.

    PelículaUsuario AUsuario B
    Acción54
    Drama43
    Comedia11

    Aunque las puntuaciones no sean exactamente iguales, ambos usuarios muestran un patrón muy parecido.

    La similitud del coseno detectará esta semejanza porque los vectores apuntan prácticamente en la misma dirección.

    ¿Por qué es importante en los sistemas de recomendación?

    En un recomendador basado en similitud interesa comparar los patrones de preferencias y no el número total de interacciones.

    Por ejemplo:

    UsuarioPelículas vistas
    A30
    B300

    Si ambos usuarios muestran preferencias similares, deberían considerarse parecidos aunque uno haya visto muchas más películas.

    La similitud del coseno elimina el efecto del tamaño del vector y compara únicamente la dirección de las preferencias.

    Beneficios

    La similitud del coseno ofrece numerosas ventajas.

    • Es independiente de la magnitud del vector.
    • Funciona muy bien con datos dispersos (Sparse Data).
    • Resulta especialmente adecuada para texto y documentos.
    • Es ampliamente utilizada en sistemas de recomendación.
    • Se integra fácilmente con algoritmos de Machine Learning.
    • Es eficiente computacionalmente.
    • Produce resultados fácilmente interpretables.

    ¿Cuándo utilizar la Similitud del Coseno?

    Es recomendable utilizarla cuando:

    • Se trabaja con documentos de texto.
    • Se utilizan representaciones TF-IDF.
    • Se emplean embeddings.
    • Se desarrollan sistemas de recomendación basados en contenido.
    • Se comparan perfiles de usuarios.
    • Existen datos de alta dimensionalidad.
    • La magnitud de los vectores no resulta relevante.

    Es una de las mejores opciones cuando interesa comparar patrones más que cantidades absolutas.

    Ventajas y desventajas

    VentajasDesventajas
    Independiente de la magnitudNo considera diferencias de escala cuando estas son importantes
    Excelente para datos dispersosPuede producir resultados poco intuitivos con valores negativos
    Muy utilizada en NLPIgnora la distancia absoluta entre vectores
    Fácil de calcularRequiere representación vectorial
    Escalable a grandes conjuntos de datosPuede no ser adecuada para variables puramente numéricas continuas

    Limitaciones

    Aunque es una de las métricas más utilizadas, presenta ciertas limitaciones.

    • Ignora la magnitud de los vectores.
    • No detecta diferencias en el volumen de información.
    • Puede no ser apropiada para datos donde la distancia absoluta sea importante.
    • Requiere que los datos puedan representarse mediante vectores.
    • Cuando existen muchos vectores, el cálculo de todas las similitudes puede resultar costoso.

    En aplicaciones de gran escala suele combinarse con técnicas de indexación o búsqueda aproximada de vecinos (Approximate Nearest Neighbors).

    Similitud del Coseno vs otras medidas

    MedidaQué comparaMagnitudTipo de datos recomendado
    Similitud del CosenoDirección del vectorNoTexto, TF-IDF, Embeddings
    Correlación de PearsonRelación linealParcialmenteValoraciones
    Distancia EuclidianaDistancia geométricaVariables numéricas
    Distancia ManhattanDiferencias absolutasVariables numéricas
    Índice de JaccardElementos compartidosNoDatos binarios

    La similitud del coseno suele ser la opción preferida cuando los datos presentan una alta dimensionalidad y son dispersos.

    Aplicaciones en Data Science y Machine Learning

    La Similitud del Coseno tiene aplicaciones en numerosos ámbitos.

    Entre las más habituales destacan:

    • Sistemas de recomendación.
    • Procesamiento del Lenguaje Natural (NLP).
    • Recuperación de información.
    • Motores de búsqueda.
    • Búsqueda semántica.
    • Clasificación de documentos.
    • Detección de documentos similares.
    • Comparación de embeddings.
    • Clustering.
    • Recuperación de imágenes.
    • Sistemas de preguntas y respuestas.
    • Inteligencia Artificial Generativa (RAG).

    Es una de las métricas más utilizadas para comparar representaciones vectoriales.

    Implementación en Python

    Calcular la similitud entre dos vectores

    from sklearn.metrics.pairwise import cosine_similarity
    import numpy as np
    
    A = np.array([[2, 3]])
    B = np.array([[4, 6]])
    
    similaridad = cosine_similarity(A, B)
    
    print(similaridad)
    
    [[1.]]

    Comparar varios vectores

    from sklearn.metrics.pairwise import cosine_similarity
    import numpy as np
    
    X = np.array([
        [2, 3],
        [4, 6],
        [5, 1]
    ])
    
    similaridad = cosine_similarity(X)
    
    print(similaridad)
    

    Resultado aproximado:

    [[1.00 1.00 0.69]
     [1.00 1.00 0.69]
     [0.69 0.69 1.00]]

    La matriz obtenida contiene la similitud entre todos los pares de vectores.

    Similitud del Coseno con TF-IDF

    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.metrics.pairwise import cosine_similarity
    
    documentos = [
        "Machine learning con Python",
        "Aprendizaje automático usando Python",
        "Recetas de cocina italiana"
    ]
    
    vectorizador = TfidfVectorizer()
    
    X = vectorizador.fit_transform(documentos)
    
    similaridad = cosine_similarity(X)
    
    print(similaridad)
    

    Este es uno de los usos más habituales de la Similitud del Coseno en procesamiento del lenguaje natural.

    Obtener los elementos más similares

    import numpy as np
    
    indice = 0
    
    similares = np.argsort(
        similaridad[indice]
    )[::-1]
    
    print(similares)
    

    Esta técnica constituye la base de numerosos sistemas de recomendación basados en contenido.

    Complejidad computacional

    El cálculo de la similitud del coseno depende del número de vectores y de su dimensionalidad.

    En una matriz con n vectores y d características:

    • El cálculo entre dos vectores tiene una complejidad aproximada de O(d).
    • Calcular todas las similitudes entre n vectores requiere aproximadamente O(n² · d).

    En conjuntos de datos muy grandes suele recurrirse a técnicas como:

    • Índices vectoriales.
    • Approximate Nearest Neighbors (ANN).
    • FAISS.
    • Annoy.
    • HNSW.

    Estas herramientas permiten acelerar significativamente la búsqueda de elementos similares.

    Buenas prácticas

    Para utilizar correctamente la Similitud del Coseno se recomienda:

    • Representar correctamente los datos mediante vectores.
    • Utilizar TF-IDF cuando se comparan documentos.
    • Emplear embeddings cuando se trabaja con información semántica.
    • Normalizar los datos cuando sea necesario.
    • Evaluar distintas medidas de similitud antes de seleccionar una.
    • Utilizar técnicas de búsqueda aproximada cuando existan millones de vectores.
    • Validar experimentalmente el rendimiento del sistema de recomendación.

    Conclusión

    La Similitud del Coseno es una de las métricas más importantes dentro de los sistemas de recomendación y del análisis de datos vectoriales. Al comparar la orientación de los vectores en lugar de su magnitud, permite identificar patrones de comportamiento similares incluso cuando existen diferencias significativas en la cantidad de información disponible.

    Su facilidad de implementación, su eficiencia y su excelente rendimiento con datos dispersos la han convertido en una herramienta fundamental en áreas como el procesamiento del lenguaje natural, la recuperación de información, los sistemas de recomendación basados en contenido y las aplicaciones modernas basadas en embeddings. Comprender su funcionamiento, ventajas y limitaciones resulta esencial para seleccionar la medida de similitud más adecuada en cada problema de Data Science y Machine Learning.

  • Comprensión del problema

    Conser-vision Practice Area: Image Classification

    En este proyecto se abordará la competición Conser-vision Practice Area: Image Classification, organizada por DrivenData, cuyo objetivo consiste en desarrollar un modelo de Visión por Computador capaz de identificar automáticamente diferentes especies animales a partir de imágenes capturadas mediante cámaras trampa instaladas en el Parque Nacional de Taï, en África Occidental.

    Contexto del problema

    Las cámaras trampa se han convertido en una herramienta imprescindible para el estudio y la conservación de la fauna salvaje. Estos dispositivos permanecen instalados durante largos periodos de tiempo y capturan fotografías automáticamente cuando detectan movimiento o cambios de temperatura.

    Gracias a este sistema es posible monitorizar poblaciones animales sin interferir en su comportamiento natural. Sin embargo, esta ventaja también genera un importante desafío: la enorme cantidad de imágenes producidas.

    Un único proyecto de conservación puede generar cientos de miles o incluso millones de fotografías, muchas de ellas sin animales o con especies difíciles de identificar. Revisar manualmente todas estas imágenes supone miles de horas de trabajo para los investigadores.

    La aplicación de técnicas de Inteligencia Artificial permite automatizar gran parte de este proceso, acelerando el análisis de los datos y facilitando el estudio de los ecosistemas.

    Problema a resolver

    El objetivo del proyecto consiste en desarrollar un modelo de clasificación de imágenes capaz de identificar correctamente la especie presente en cada fotografía obtenida por las cámaras trampa.

    Cada imagen deberá clasificarse en una de las siguientes categorías:

    • Antelope Duiker
    • Bird
    • Blank (sin animales)
    • Civet Genet
    • Hog
    • Leopard
    • Monkey Prosimian
    • Rodent

    Una característica especialmente interesante de esta competición es que las imágenes del conjunto de prueba proceden de ubicaciones completamente diferentes a las utilizadas durante el entrenamiento. Esto obliga al modelo a aprender las características propias de cada especie en lugar de memorizar el entorno donde fue capturada la fotografía.

    Objetivos del proyecto

    El objetivo principal consiste en desarrollar un modelo de Deep Learning capaz de clasificar automáticamente las especies presentes en las imágenes con un elevado nivel de precisión y una buena capacidad de generalización.

    Para ello se plantean los siguientes objetivos específicos:

    • Comprender la estructura del conjunto de datos.
    • Analizar las características visuales de las diferentes especies.
    • Diseñar un proceso adecuado de preparación de imágenes.
    • Aplicar técnicas de Transfer Learning utilizando modelos preentrenados.
    • Evaluar diferentes arquitecturas de Visión por Computador.
    • Optimizar el rendimiento del modelo mediante técnicas de aumento de datos.
    • Generar predicciones compatibles con el formato requerido por la competición.

    Criterios de éxito

    El éxito del proyecto no dependerá únicamente de obtener una buena posición en la clasificación de la competición.

    También se considerarán los siguientes aspectos:

    • Desarrollar un pipeline completamente reproducible.
    • Documentar todas las fases del proyecto.
    • Aplicar una metodología estructurada de Ciencia de Datos.
    • Obtener un modelo con buena capacidad de generalización sobre nuevas localizaciones.
    • Publicar el proyecto completo como recurso educativo para otros profesionales y estudiantes.

    Partes interesadas

    Aunque el proyecto se desarrolla dentro de una competición de Ciencia de Datos, la solución tiene aplicaciones reales y beneficia a diferentes grupos de interés.

    Los principales beneficiarios son los investigadores dedicados a la conservación de la biodiversidad, que podrán reducir significativamente el tiempo necesario para clasificar las imágenes obtenidas mediante cámaras trampa.

    Las organizaciones dedicadas a la protección del medio ambiente también podrán utilizar este tipo de modelos para mejorar el seguimiento de poblaciones animales y acelerar el análisis de grandes volúmenes de información.

    Finalmente, este proyecto constituye un caso práctico de aplicación de técnicas modernas de Deep Learning y Visión por Computador, por lo que también resulta de interés para estudiantes y profesionales del ámbito de la Inteligencia Artificial.

    Restricciones del proyecto

    La competición establece una serie de limitaciones que deben respetarse durante el desarrollo del modelo.

    No está permitido utilizar conjuntos de datos externos para el entrenamiento, por lo que únicamente podrán emplearse las imágenes proporcionadas por la organización.

    Asimismo, las predicciones deberán generarse siguiendo exactamente el formato especificado por la competición y el rendimiento del modelo se evaluará mediante la métrica Multi-class Log Loss.

    Riesgos

    Durante el desarrollo del proyecto pueden aparecer diferentes dificultades que afecten al rendimiento del modelo.

    Entre los principales riesgos destacan:

    • Desbalance entre las diferentes clases.
    • Sobreajuste al fondo de las imágenes.
    • Baja capacidad de generalización entre distintas ubicaciones.
    • Variaciones importantes en iluminación y condiciones meteorológicas.
    • Imágenes nocturnas obtenidas mediante infrarrojos.
    • Animales parcialmente ocultos por la vegetación.
    • Fotografías donde no aparece ningún animal.

    Todos estos aspectos deberán analizarse durante las siguientes fases del proyecto para diseñar un modelo robusto y capaz de enfrentarse a escenarios reales.

    Alcance del proyecto

    Este proyecto se centra exclusivamente en la clasificación automática de especies animales presentes en imágenes individuales.

    Quedan fuera del alcance tareas más complejas como la detección de objetos, la segmentación de imágenes, la localización exacta de los animales o la identificación individual de ejemplares concretos.

    Conclusiones

    Comprender correctamente el problema constituye el primer paso para desarrollar una solución de Inteligencia Artificial eficaz.

    En este proyecto, el objetivo va mucho más allá de entrenar un modelo con una buena puntuación en una competición. Se pretende construir un flujo de trabajo completo, reproducible y bien documentado que sirva como ejemplo práctico de aplicación de técnicas modernas de Visión por Computador a un problema real de conservación de la biodiversidad.

    En el siguiente artículo se abordará la fase de Analytic Approach, donde se justificará la elección de las técnicas de Machine Learning y Deep Learning más adecuadas para resolver este problema.

  • Clasificación de Especies mediante Computer Vision

    Clasificación de Especies mediante Computer Vision

    DrivenData Practice Project

    La clasificación automática de imágenes es una de las áreas más importantes de la Inteligencia Artificial moderna. Gracias a los avances en Deep Learning y Computer Vision, hoy es posible desarrollar modelos capaces de identificar objetos, personas, animales o incluso enfermedades a partir de imágenes con un nivel de precisión comparable al de un experto humano.

    En este proyecto se desarrolla una solución para la competición Conser-vision Practice Area: Image Classification, organizada por DrivenData, cuyo objetivo consiste en clasificar automáticamente las especies animales presentes en fotografías obtenidas mediante cámaras trampa instaladas en el Parque Nacional de Taï, en África Occidental. Este tipo de sistemas permite acelerar el análisis de millones de imágenes capturadas por investigadores y facilita la monitorización de la biodiversidad sin interferir en el comportamiento natural de los animales.

    Articulos del proyecto

    Descripción del problema

    Las cámaras trampa son dispositivos que permanecen instalados durante largos periodos de tiempo y capturan imágenes cuando detectan movimiento o cambios de temperatura. Gracias a ellas, los investigadores pueden estudiar poblaciones de fauna salvaje sin necesidad de realizar observaciones directas.

    Sin embargo, este tipo de dispositivos genera enormes cantidades de fotografías, muchas de ellas sin ningún animal presente. Revisar manualmente todas estas imágenes requiere miles de horas de trabajo, por lo que automatizar el proceso mediante modelos de aprendizaje profundo supone un importante avance para los proyectos de conservación.

    El objetivo de esta competición consiste en desarrollar un modelo capaz de identificar correctamente la especie presente en cada fotografía, incluyendo aquellas imágenes donde no aparece ningún animal.

    Objetivo del proyecto

    Construir un modelo de clasificación de imágenes capaz de predecir la probabilidad de que cada fotografía pertenezca a una de las ocho categorías disponibles, logrando una buena capacidad de generalización sobre imágenes procedentes de localizaciones nunca vistas durante el entrenamiento.

    Tipo de problema

    Desde el punto de vista del Machine Learning, este proyecto corresponde a un problema de:

    • Computer Vision
    • Image Classification
    • Clasificación multiclase
    • Aprendizaje supervisado
    • Deep Learning

    Cada imagen pertenece exclusivamente a una única categoría.

    Dataset

    El conjunto de datos está formado por miles de imágenes en formato JPG obtenidas mediante cámaras trampa distribuidas en diferentes ubicaciones del Parque Nacional de Taï. Cada registro dispone de la siguiente información:

    VariableTipoDescripción
    idStringIdentificador único de la imagen
    filepathStringRuta del archivo de imagen
    siteCategóricaIdentificador del lugar donde fue capturada la fotografía

    Aunque únicamente existen tres variables tabulares, la información principal reside en el contenido visual de cada imagen.

    Variable objetivo

    El modelo debe clasificar cada fotografía en una de las siguientes ocho categorías:

    ClaseDescripción
    antelope_duikerAntílopes y duikers
    birdAves
    blankImagen sin animales
    civet_genetCivetas y ginetas
    hogJabalíes
    leopardLeopardos
    monkey_prosimianMonos y prosimios
    rodentRoedores

    Cada imagen contiene como máximo una especie, por lo que no se trata de un problema de clasificación multietiqueta, sino de clasificación multiclase.

    Particularidades del conjunto de datos

    Este dataset presenta varios desafíos que lo hacen especialmente interesante desde el punto de vista de la visión artificial.

    Gran variabilidad en las condiciones de captura

    Las imágenes han sido obtenidas durante diferentes momentos del día y bajo condiciones ambientales muy distintas. Es posible encontrar fotografías tomadas:

    • Durante el día.
    • Por la noche mediante infrarrojos.
    • Con lluvia.
    • Bajo diferentes niveles de iluminación.
    • En zonas con abundante vegetación.
    • Con diferentes modelos de cámara.

    Estas diferencias aumentan considerablemente la dificultad del problema.

    Variación en la posición de los animales

    Los animales pueden aparecer:

    • Muy próximos a la cámara.
    • A gran distancia.
    • Parcialmente ocultos por la vegetación.
    • Mirando hacia la cámara.
    • De espaldas.
    • En movimiento.

    El modelo debe ser capaz de reconocer la especie independientemente de estas variaciones.

    Imágenes sin animales

    Una parte importante del dataset corresponde a fotografías donde no aparece ningún animal.

    Estas imágenes pertenecen a la categoría blank, que resulta especialmente importante ya que evita que el modelo detecte falsos positivos continuamente.

    Generalización a nuevos entornos

    Una de las características más interesantes de esta competición es la forma en la que se construyó el conjunto de entrenamiento y prueba.

    Las imágenes del conjunto de prueba proceden de ubicaciones completamente distintas a las utilizadas durante el entrenamiento.

    Esto significa que el modelo no puede aprender únicamente el fondo o las características del entorno, sino que debe aprender realmente las características visuales de cada especie.

    Este enfoque obliga a construir modelos mucho más robustos y cercanos a un escenario real de producción.

    Estrategia de validación

    Debido a esta característica, realizar una división aleatoria tradicional del conjunto de entrenamiento puede producir una estimación demasiado optimista del rendimiento del modelo.

    La estrategia más recomendable consiste en utilizar validación basada en grupos mediante la variable site, empleando técnicas como:

    • Group K-Fold
    • Group Shuffle Split

    De esta forma se garantiza que una misma localización nunca aparezca simultáneamente en entrenamiento y validación.

    Preprocesamiento de imágenes

    Antes del entrenamiento es habitual aplicar diferentes transformaciones sobre las imágenes con el objetivo de mejorar la capacidad de generalización del modelo.

    Entre las técnicas más utilizadas destacan:

    • Cambio de tamaño de las imágenes.
    • Normalización de los valores de los píxeles.
    • Rotaciones aleatorias.
    • Volteo horizontal.
    • Variaciones de brillo.
    • Variaciones de contraste.
    • Zoom aleatorio.
    • Desenfoque ligero.
    • Adición de ruido.

    Estas técnicas reciben el nombre de Image Augmentation y permiten que el modelo aprenda representaciones mucho más robustas frente a cambios de iluminación, perspectiva o distancia.

    Arquitecturas recomendadas

    Este problema puede resolverse mediante diferentes arquitecturas de Deep Learning especializadas en visión por computador.

    Entre las más utilizadas destacan:

    • ResNet50
    • ResNet101
    • EfficientNet
    • ConvNeXt
    • DenseNet
    • Vision Transformer (ViT)
    • Swin Transformer

    Una estrategia muy recomendable consiste en utilizar Transfer Learning, aprovechando modelos previamente entrenados sobre ImageNet y ajustándolos posteriormente con las imágenes del concurso.

    Función de pérdida

    Durante el entrenamiento se emplea normalmente la función de pérdida Cross Entropy Loss, diseñada específicamente para problemas de clasificación multiclase.

    Esta función penaliza especialmente aquellas predicciones incorrectas realizadas con una alta confianza.

    Métrica de evaluación

    La competición utiliza como métrica oficial el Multi-class Log Loss.

    A diferencia de la precisión (Accuracy), esta métrica no solamente evalúa si la predicción es correcta, sino también la confianza con la que el modelo realiza dicha predicción.

    Cuanto menor sea el valor obtenido, mejor será el rendimiento del modelo.

    Esta métrica favorece modelos que produzcan probabilidades bien calibradas en lugar de realizar predicciones excesivamente confiadas.

    Librerías utilizadas

    El desarrollo de este proyecto puede realizarse utilizando herramientas ampliamente utilizadas en proyectos profesionales de Computer Vision, entre ellas:

    • Python
    • PyTorch
    • Torchvision
    • TIMM
    • Albumentations
    • OpenCV
    • Pillow
    • NumPy
    • Pandas
    • Matplotlib
    • Scikit-learn

    Flujo de trabajo

    El desarrollo del proyecto puede dividirse en las siguientes etapas:

    1. Exploración del conjunto de datos.
    2. Visualización de imágenes por categoría.
    3. Análisis del número de imágenes por clase.
    4. Análisis de las localizaciones disponibles.
    5. Construcción de una estrategia de validación por grupos.
    6. Implementación del pipeline de carga de imágenes.
    7. Aplicación de técnicas de Data Augmentation.
    8. Entrenamiento mediante Transfer Learning.
    9. Ajuste de hiperparámetros.
    10. Evaluación del modelo.
    11. Generación del archivo de envío para la competición.
  • Introducción a las Medidas de Similitud en Sistemas de Recomendación

    Las medidas de similitud constituyen uno de los componentes fundamentales de los sistemas de recomendación modernos. Su objetivo es cuantificar el grado de semejanza entre usuarios, productos o cualquier otro tipo de elemento para identificar patrones comunes y generar recomendaciones personalizadas.

    En un sistema de recomendación, la calidad de las sugerencias depende en gran medida de la capacidad del algoritmo para encontrar usuarios con gustos similares o elementos con características parecidas. Para ello, se utilizan funciones matemáticas conocidas como medidas de similitud, capaces de transformar la relación entre dos objetos en un valor numérico que representa su nivel de semejanza.

    Existen numerosas medidas de similitud, cada una diseñada para diferentes tipos de datos y problemas. Algunas son especialmente adecuadas para datos numéricos, mientras que otras funcionan mejor con texto, datos binarios o vectores de alta dimensión. En este artículo se presenta una visión conceptual de las principales medidas utilizadas en sistemas de recomendación. En artículos posteriores se estudiará cada una de ellas de forma individual.

    ¿Qué son las medidas de similitud?

    Las medidas de similitud son funciones matemáticas que permiten cuantificar el grado de parecido entre dos objetos.

    Dependiendo del sistema de recomendación, estos objetos pueden representar:

    • Usuarios.
    • Productos.
    • Películas.
    • Libros.
    • Canciones.
    • Artículos.
    • Documentos.
    • Imágenes.
    • Productos de comercio electrónico.

    El resultado del cálculo suele expresarse mediante una puntuación que indica cuánto se parecen ambos elementos.

    En general:

    • Un valor elevado indica una mayor similitud.
    • Un valor reducido indica una menor similitud.

    La interpretación exacta depende de la medida utilizada.

    ¿Por qué son importantes en los sistemas de recomendación?

    Las medidas de similitud constituyen el mecanismo que permite a un sistema decidir qué usuarios o elementos son comparables.

    Gracias a ellas es posible:

    • Recomendar productos similares.
    • Encontrar usuarios con gustos parecidos.
    • Descubrir contenido relacionado.
    • Personalizar recomendaciones.
    • Mejorar la experiencia del usuario.
    • Incrementar la precisión del sistema.

    Sin una medida de similitud adecuada, un recomendador no tendría un criterio objetivo para seleccionar los elementos más relevantes.

    ¿Cómo funcionan?

    Aunque cada métrica utiliza una formulación matemática diferente, el proceso general suele seguir los mismos pasos.

    1. Representar usuarios o elementos mediante un conjunto de características.
    2. Seleccionar la medida de similitud adecuada.
    3. Comparar los pares de elementos.
    4. Obtener una puntuación de similitud.
    5. Ordenar los resultados.
    6. Recomendar los elementos más similares.

    Este procedimiento constituye la base de numerosos algoritmos de recomendación.

    Representación de los datos

    Antes de calcular la similitud, es necesario transformar la información en una representación adecuada.

    Las representaciones más habituales son:

    • Matriz Usuario-Ítem.
    • Matriz Ítem-Características.
    • Variables numéricas.
    • Variables binarias.
    • TF-IDF.
    • Embeddings.
    • Vectores de características.

    La elección de la representación condiciona la medida de similitud más apropiada.

    Principales medidas de similitud

    Existen numerosas métricas de similitud. Cada una presenta ventajas para determinados tipos de datos.

    Similitud del Coseno

    La similitud del coseno mide el ángulo existente entre dos vectores, independientemente de su longitud.

    Es especialmente adecuada para:

    • Documentos.
    • TF-IDF.
    • Embeddings.
    • Sistemas basados en contenido.
    • Procesamiento del Lenguaje Natural (NLP).

    Su rango habitual es:

    • 1 → máxima similitud.
    • 0 → sin relación.
    • -1 → direcciones opuestas (cuando existen valores negativos).

    Correlación de Pearson

    La correlación de Pearson mide el grado de relación lineal entre dos variables o vectores.

    En sistemas de recomendación se utiliza principalmente para comparar usuarios o elementos teniendo en cuenta sus patrones de valoración.

    Es especialmente útil cuando interesa comparar preferencias independientemente de la escala utilizada por cada usuario.

    Índice de Jaccard

    El índice de Jaccard compara dos conjuntos mediante la proporción de elementos compartidos respecto al total de elementos distintos.

    Es especialmente adecuado para:

    • Datos binarios.
    • Etiquetas.
    • Intereses.
    • Preferencias.
    • Sistemas donde únicamente interesa conocer si existe o no una interacción.

    Distancia Euclidiana

    La distancia euclidiana mide la distancia geométrica entre dos puntos en un espacio multidimensional.

    Cuanto menor sea la distancia, mayor será la similitud entre ambos objetos.

    Se utiliza principalmente con:

    • Variables numéricas.
    • Sistemas híbridos.
    • Modelos basados en distancias.

    Distancia Manhattan

    La distancia Manhattan calcula la distancia entre dos puntos sumando las diferencias absolutas de cada dimensión.

    Su nombre proviene de la disposición en cuadrícula de las calles de Manhattan, donde la distancia real se mide recorriendo calles horizontales y verticales en lugar de una línea recta.

    Es especialmente útil cuando:

    • Los datos presentan muchas dimensiones.
    • Se utilizan variables numéricas.
    • Se desea reducir la influencia de valores extremos respecto a otras métricas.

    Será desarrollada en un artículo independiente.

    Comparación entre las principales medidas

    MedidaTipo de datos recomendadoQué comparaValores
    Similitud del CosenoTexto, TF-IDF, EmbeddingsDirección de los vectores-1 a 1
    Correlación de PearsonVariables numéricasRelación lineal entre valoraciones-1 a 1
    Índice de JaccardDatos binarios o categóricosElementos compartidos0 a 1
    Distancia EuclidianaVariables numéricasDistancia geométrica0 a ∞
    Distancia ManhattanVariables numéricasDiferencias absolutas0 a ∞

    Cada una resulta más adecuada para determinados tipos de datos y problemas.

    ¿Cómo elegir una medida de similitud?

    La elección depende principalmente de la naturaleza de los datos.

    Como orientación general:

    • Similitud del Coseno para documentos, texto y embeddings.
    • Correlación de Pearson para valoraciones de usuarios.
    • Índice de Jaccard para datos binarios.
    • Distancia Euclidiana para variables numéricas continuas.
    • Distancia Manhattan cuando interesa una métrica menos sensible a determinadas distribuciones de los datos.

    No existe una medida universalmente superior; la elección debe adaptarse al problema y validarse experimentalmente.

    Ejemplos de utilización

    • Plataforma de películas: Se comparan usuarios según las películas que han valorado para recomendar nuevos títulos.
    • Comercio electrónico: Se comparan productos mediante sus características para recomendar artículos similares.
    • Plataforma musical: Se identifican usuarios con hábitos de escucha parecidos para sugerir nuevas canciones.
    • Portal de noticias: Se comparan artículos utilizando sus descripciones para recomendar contenido relacionado.

    Beneficios

    El uso de medidas de similitud ofrece numerosas ventajas.

    • Permiten personalizar las recomendaciones.
    • Mejoran la precisión del sistema.
    • Facilitan el descubrimiento de nuevos contenidos.
    • Incrementan la satisfacción del usuario.
    • Constituyen la base de numerosos algoritmos de recomendación.
    • Son aplicables a múltiples dominios.

    ¿Cuándo utilizar medidas de similitud?

    Es recomendable utilizarlas cuando:

    • Se desarrollan sistemas de recomendación.
    • Se comparan perfiles de usuarios.
    • Se buscan elementos similares.
    • Se trabaja con filtrado colaborativo.
    • Se implementan sistemas basados en contenido.
    • Se desarrollan motores de búsqueda.
    • Se realizan tareas de recuperación de información.

    Ventajas y desventajas

    VentajasDesventajas
    Fácil interpretaciónNo existe una métrica óptima para todos los problemas
    Mejoran la personalizaciónAlgunas requieren normalización previa
    Amplio campo de aplicaciónEl coste computacional puede ser elevado
    Compatibles con numerosos algoritmosLa elección depende del tipo de datos
    Constituyen la base de muchos recomendadoresAlgunas métricas son sensibles a valores atípicos

    Limitaciones

    Aunque son fundamentales en los sistemas de recomendación, presentan algunas limitaciones.

    • La calidad de las recomendaciones depende de la calidad de los datos.
    • Algunas medidas no funcionan correctamente con datos muy dispersos.
    • El cálculo puede resultar costoso cuando existen millones de usuarios o elementos.
    • No todas las métricas capturan relaciones semánticas complejas.
    • Algunas requieren normalización o preprocesamiento previo.

    Por ello, en aplicaciones reales suelen combinarse con técnicas de reducción de dimensionalidad, aprendizaje profundo o búsquedas aproximadas de vecinos.

    Relación con los tipos de sistemas de recomendación

    Las medidas de similitud se utilizan de forma diferente según el tipo de recomendador.

    Tipo de sistemaMedidas utilizadas con mayor frecuencia
    Filtrado colaborativo basado en usuariosCoseno, Pearson
    Filtrado colaborativo basado en elementosCoseno, Pearson
    Filtrado basado en contenidoCoseno, Jaccard
    Sistemas híbridosCoseno, Euclidiana, Manhattan
    Recomendadores basados en conocimientoDepende del dominio y de las características disponibles

    Cada arquitectura selecciona la medida que mejor representa la relación entre usuarios o elementos.

    Aplicaciones en Data Science y Machine Learning

    Las medidas de similitud no se limitan a los sistemas de recomendación. También aparecen en numerosas áreas de la Ciencia de Datos. Algunas aplicaciones incluyen:

    • Sistemas de recomendación.
    • Procesamiento del Lenguaje Natural (NLP).
    • Motores de búsqueda.
    • Recuperación de información.
    • Clustering.
    • Clasificación mediante KNN.
    • Detección de fraude.
    • Visión por computador.
    • Bioinformática.
    • Detección de documentos duplicados.

    Implementación básica en Python

    Aunque cada medida dispone de su propia implementación, Scikit-Learn proporciona funciones para calcular muchas de ellas.

    Similitud del Coseno

    from sklearn.metrics.pairwise import cosine_similarity
    similaridad = cosine_similarity(X)

    Correlación de Pearson

    import pandas as pd
    correlacion = df.corr(method="pearson")

    Índice de Jaccard

    from sklearn.metrics import jaccard_score
    score = jaccard_score(y_true, y_pred)

    Distancia Euclidiana

    from sklearn.metrics.pairwise import euclidean_distances
    distancias = euclidean_distances(X)

    Distancia Manhattan

    from sklearn.metrics.pairwise import manhattan_distances
    distancias = manhattan_distances(X)

    En los artículos dedicados a cada medida se profundizará en su formulación matemática, interpretación e implementación práctica.

    Buenas prácticas

    Para utilizar correctamente las medidas de similitud se recomienda:

    • Seleccionar la métrica según el tipo de datos.
    • Normalizar las variables cuando sea necesario.
    • Evaluar varias medidas antes de elegir una.
    • Reducir la dimensionalidad cuando existan muchas variables.
    • Validar experimentalmente el rendimiento del sistema.
    • Optimizar el cálculo de similitudes en conjuntos de datos muy grandes.
    • Documentar la métrica utilizada y justificar su elección.

    Conclusión

    Las medidas de similitud constituyen uno de los pilares fundamentales de los sistemas de recomendación, ya que permiten cuantificar objetivamente el grado de semejanza entre usuarios, productos o cualquier otro tipo de elemento. La elección de una métrica adecuada influye directamente en la calidad de las recomendaciones y debe realizarse teniendo en cuenta la naturaleza de los datos y el tipo de recomendador implementado.

    Métricas como la Similitud del Coseno, la Correlación de Pearson, el Índice de Jaccard, la Distancia Euclidiana y la Distancia Manhattan representan algunos de los enfoques más utilizados debido a su eficacia y versatilidad. En los siguientes artículos se estudiará cada una de estas medidas de forma individual, analizando sus fundamentos matemáticos, ventajas, limitaciones, implementación en Python y aplicaciones prácticas dentro de los sistemas de recomendación.

  • Analytic Approach (Enfoque Analítico)

    Transformar un problema de negocio en un problema de Ciencia de Datos

    Una vez comprendido el problema del mundo real durante la fase de Business Understanding, el siguiente paso consiste en determinar cómo puede resolverse mediante técnicas de Ciencia de Datos.

    Esta etapa recibe el nombre de Analytic Approach (Enfoque Analítico) y constituye el puente entre el conocimiento del dominio y la implementación técnica de la solución.

    Mientras que en la fase anterior se definieron el problema, los objetivos, los usuarios, las restricciones y los criterios de éxito, en esta etapa se responde a una nueva pregunta:

    ¿Qué tipo de análisis o de solución basada en Ciencia de Datos permitirá resolver este problema?

    Es importante destacar que todavía no se seleccionan algoritmos concretos. No se decide si utilizar Random Forest, XGBoost, Redes Neuronales o cualquier otro modelo. Esas decisiones pertenecen a la fase de Modeling.

    En esta etapa únicamente se determina cuál es el enfoque analítico más adecuado para abordar el problema.


    ¿Qué es Analytic Approach?

    Analytic Approach es la fase de la metodología en la que se transforma un problema del mundo real en un problema de Ciencia de Datos.

    Su finalidad es identificar el tipo de solución analítica más apropiada para alcanzar los objetivos definidos durante la fase de Business Understanding.

    Dependiendo del problema, la solución podrá abordarse mediante:

    • Clasificación.
    • Regresión.
    • Series temporales.
    • Clustering.
    • Sistemas de recomendación.
    • Detección de anomalías.
    • Procesamiento del Lenguaje Natural (NLP).
    • Visión Artificial.
    • Inteligencia Artificial Generativa.
    • Otras técnicas de aprendizaje automático.

    La elección del enfoque condicionará todas las etapas posteriores del proyecto, incluyendo los datos necesarios, las métricas de evaluación y los modelos que finalmente podrán utilizarse.


    ¿Por qué constituye una etapa independiente?

    Uno de los errores más frecuentes consiste en pasar directamente desde la comprensión del negocio al análisis de los datos.

    Sin embargo, antes de comenzar a trabajar con el dataset es necesario responder una cuestión fundamental:

    ¿Qué tipo de problema voy a resolver?

    La respuesta determinará completamente el desarrollo posterior del proyecto.

    Por ejemplo, supongamos que queremos desarrollar un sistema relacionado con el almacenamiento global de agua.

    Dependiendo del objetivo planteado durante la fase de Business Understanding, el enfoque analítico podría ser completamente distinto.

    Objetivo 1

    Estimar cuánta agua estará almacenada dentro de seis meses.

    En este caso el problema corresponde a una regresión o a una predicción de series temporales.


    Objetivo 2

    Determinar si una región sufrirá una sequía.

    Ahora el problema pasa a ser una clasificación binaria.


    Objetivo 3

    Agrupar regiones con comportamientos hidrológicos similares.

    En este caso el enfoque adecuado sería un problema de clustering.


    Objetivo 4

    Detectar comportamientos anómalos en los sensores.

    Aquí el problema pertenece al ámbito de la detección de anomalías.

    Como puede observarse, el conjunto de datos podría ser exactamente el mismo, mientras que el enfoque analítico cambia completamente según el objetivo del proyecto.

    Por este motivo, esta fase debe realizarse antes de comenzar el análisis de los datos.


    Objetivos de Analytic Approach

    El propósito de esta etapa consiste en definir cómo será abordado el problema desde el punto de vista de la Ciencia de Datos.

    Entre sus principales objetivos destacan:

    • Traducir el problema de negocio a un problema analítico.
    • Seleccionar el tipo de aprendizaje más adecuado.
    • Definir el objetivo que deberá aprender el modelo.
    • Determinar cómo se evaluará el rendimiento de la solución.
    • Establecer las bases técnicas del proyecto.

    Esta información servirá como guía para todas las fases posteriores de la metodología.


    Relación con Business Understanding

    Aunque ambas etapas están estrechamente relacionadas, persiguen objetivos diferentes.

    Business Understanding responde a la pregunta:

    ¿Qué problema necesita resolverse?

    Mientras que Analytic Approach responde:

    ¿Qué tipo de solución basada en Ciencia de Datos puede resolver ese problema?

    Por ejemplo:

    Business Understanding

    Problema:

    Las autoridades sanitarias desean aumentar la cobertura de vacunación frente a la gripe H1N1.


    Analytic Approach

    Enfoque:

    Construir un modelo de clasificación binaria capaz de predecir la probabilidad de que una persona acepte vacunarse.

    Todavía no se ha elegido ningún algoritmo.

    Únicamente se ha identificado el tipo de problema analítico.


    Preguntas que debe responder Analytic Approach

    Antes de continuar con la metodología, esta fase debería responder, al menos, las siguientes cuestiones.

    ¿Qué tipo de problema representa?

    Es la pregunta principal de esta etapa.

    Algunas posibilidades habituales son:

    • Clasificación.
    • Regresión.
    • Series temporales.
    • Clustering.
    • Detección de anomalías.
    • Recomendación.
    • Procesamiento del Lenguaje Natural.
    • Visión Artificial.

    La respuesta condicionará completamente el resto del proyecto.


    ¿Qué variable o fenómeno se desea predecir?

    Debe definirse claramente cuál será el objetivo del modelo.

    Por ejemplo:

    Proyecto H1N1

    Variable objetivo:

    • Vacunado.
    • No vacunado.

    Proyecto de almacenamiento global de agua

    Variable objetivo:

    • Volumen de agua almacenada.

    Proyecto de fraude bancario

    Variable objetivo:

    • Operación fraudulenta.
    • Operación legítima.

    ¿Qué tipo de aprendizaje será necesario?

    Una vez definido el problema, debe determinarse el paradigma de aprendizaje más adecuado.

    Algunas posibilidades son:

    • Aprendizaje supervisado.
    • Aprendizaje no supervisado.
    • Aprendizaje semi-supervisado.
    • Aprendizaje por refuerzo.

    En la mayoría de competiciones de Machine Learning el problema suele pertenecer al aprendizaje supervisado.


    ¿Cómo se evaluará el éxito?

    Antes de construir ningún modelo debe definirse la métrica que permitirá comparar distintas soluciones.

    Algunos ejemplos son:

    • Accuracy.
    • Precision.
    • Recall.
    • F1-Score.
    • ROC-AUC.
    • RMSE.
    • MAE.
    • MAPE.

    La elección de la métrica dependerá completamente del tipo de problema identificado.


    Flujo de trabajo de Analytic Approach

    Aunque cada proyecto presenta particularidades, esta fase suele desarrollarse siguiendo una secuencia bastante estable.

    1. Revisar los objetivos definidos durante Business Understanding

    Antes de seleccionar un enfoque analítico es necesario verificar que los objetivos del proyecto están claramente definidos.

    Esta fase no debe modificar el problema de negocio, sino utilizarlo como punto de partida.


    2. Traducir el problema del dominio a un problema analítico

    Consiste en expresar el problema utilizando el lenguaje propio de la Ciencia de Datos.

    Por ejemplo:

    Problema del dominio

    Identificar qué personas aceptarán vacunarse.

    Problema analítico

    Clasificación binaria.


    3. Determinar el tipo de aprendizaje

    En función del problema identificado, se selecciona el paradigma de aprendizaje más adecuado.

    Por ejemplo:

    • Supervisado.
    • No supervisado.
    • Semi-supervisado.
    • Aprendizaje por refuerzo.

    4. Definir la variable objetivo

    Debe establecerse claramente cuál será la salida esperada del modelo.

    En algunos proyectos será una categoría; en otros, un valor continuo o incluso una secuencia temporal.


    5. Seleccionar las métricas de evaluación

    Por último, se definen las métricas que permitirán medir objetivamente el rendimiento del modelo durante las fases posteriores del proyecto.

    Estas métricas deberán mantenerse durante todo el ciclo de desarrollo para garantizar una evaluación consistente.


    Resultado esperado de Analytic Approach

    Al finalizar esta etapa debe existir un documento técnico que describa con claridad:

    • El tipo de problema de Ciencia de Datos que representa el proyecto.
    • El paradigma de aprendizaje seleccionado.
    • La variable objetivo que aprenderá el modelo.
    • Las métricas que permitirán evaluar su rendimiento.
    • La justificación del enfoque analítico elegido.

    Este documento servirá como puente entre el conocimiento del dominio adquirido durante Business Understanding y las siguientes fases de la metodología, comenzando por Data Requirements, donde se definirán los datos necesarios para desarrollar la solución propuesta.

  • Business Understanding (Comprensión del negocio)

    La primera etapa de cualquier proyecto de Ciencia de Datos

    Todo proyecto de Ciencia de Datos comienza mucho antes de cargar un conjunto de datos o escribir la primera línea de código. Antes de seleccionar algoritmos, analizar variables o entrenar modelos de Machine Learning, es imprescindible comprender el problema que se pretende resolver.

    Esta fase inicial recibe el nombre de Business Understanding (Comprensión del negocio) y constituye el punto de partida de metodologías ampliamente utilizadas como CRISP-DM, IBM Data Science Methodology o Team Data Science Process (TDSP).

    Aunque su nombre hace referencia al “negocio”, este concepto no debe interpretarse únicamente en un contexto empresarial. El término business hace referencia al dominio del problema, independientemente de que se trate de una empresa, una administración pública, una investigación científica, una competición de Machine Learning o un proyecto personal.

    Por ejemplo:

    • En un proyecto sobre predicción del almacenamiento global de agua, el “negocio” es la hidrología y la gestión de los recursos hídricos.
    • En un proyecto de predicción de vacunación frente a la gripe H1N1, el dominio corresponde a la salud pública y la epidemiología.
    • En un sistema de detección de fraude, el contexto es el sector financiero.
    • En un recomendador de cursos, el dominio es la educación.

    En todos los casos, el objetivo es el mismo: comprender el problema real antes de intentar resolverlo mediante ciencia de datos.

    ¿Qué es Business Understanding?

    Business Understanding es la fase en la que se analiza el problema desde el punto de vista del dominio de aplicación para definir claramente qué se pretende conseguir, por qué es importante resolverlo y cómo se medirá el éxito del proyecto.

    Durante esta etapa todavía no se trabaja con los datos. El foco se sitúa en comprender el contexto, las necesidades y las limitaciones del problema. En otras palabras, esta fase responde a preguntas como:

    • ¿Qué problema se quiere resolver?
    • ¿Por qué existe ese problema?
    • ¿Quién necesita la solución?
    • ¿Qué impacto tendrá resolverlo?
    • ¿Cómo se evaluará el éxito del proyecto?
    • ¿Qué papel desempeñará la ciencia de datos en la solución?

    El resultado debe ser una definición precisa del problema que sirva de guía para todas las fases posteriores.

    ¿Por qué es la primera etapa del proyecto?

    Una de las causas más frecuentes de fracaso en proyectos de Ciencia de Datos consiste en desarrollar modelos técnicamente muy buenos para resolver un problema que nunca fue correctamente definido.

    Es habitual comenzar un proyecto abriendo un archivo CSV y explorando las variables disponibles. Sin embargo, hacerlo sin comprender previamente el contexto puede conducir a errores importantes.

    Por ejemplo, imaginemos un proyecto cuyo objetivo es predecir el almacenamiento global de agua.

    Si el científico de datos desconoce cómo funciona el ciclo hidrológico, difícilmente podrá interpretar correctamente variables relacionadas con:

    • Precipitaciones.
    • Evapotranspiración.
    • Humedad del suelo.
    • Acuíferos.
    • Embalses.
    • Cobertura de nieve.
    • Temperatura.

    Del mismo modo, en un proyecto sobre vacunación frente a la gripe H1N1 resulta fundamental comprender previamente aspectos como:¿

    • ¿Cómo se desarrollan las campañas de vacunación?
    • ¿Qué factores influyen en la decisión de vacunarse?
    • ¿Qué grupos presentan mayor riesgo?
    • ¿Qué utilidad tendría predecir la aceptación de la vacuna?

    Este conocimiento permitirá posteriormente interpretar correctamente las variables del conjunto de datos y tomar decisiones de preprocesamiento mucho más fundamentadas.

    Objetivos de Business Understanding

    La fase de Business Understanding persigue varios objetivos fundamentales:

    • Comprender el problema desde la perspectiva del dominio de aplicación.
    • Definir claramente los objetivos del proyecto.
    • Identificar quién utilizará los resultados.
    • Establecer los criterios que determinarán el éxito del proyecto.
    • Detectar restricciones técnicas, temporales o legales.
    • Transformar un problema del mundo real en un problema susceptible de resolverse mediante ciencia de datos.

    Todos estos objetivos constituyen la base sobre la que se construirá el resto del proyecto.

    Preguntas que debe responder Business Understanding

    Antes de continuar con la metodología, esta fase debería permitir responder, como mínimo, a las siguientes preguntas:

    ¿Cuál es el problema real?

    Debe describirse el problema utilizando el lenguaje propio del dominio, evitando hablar todavía de algoritmos o modelos.

    Por ejemplo:

    Incorrecto

    Desarrollar un modelo de clasificación.

    Correcto

    Identificar qué personas presentan mayor probabilidad de vacunarse frente a la gripe H1N1 para optimizar las campañas de salud pública.

    ¿Por qué es importante resolverlo?

    Todo proyecto debe aportar algún tipo de valor.

    Ese valor puede traducirse en:

    • Reducción de costes.
    • Optimización de recursos.
    • Mejora de procesos.
    • Incremento de beneficios.
    • Apoyo a la toma de decisiones.
    • Generación de conocimiento científico.

    ¿Quién utilizará la solución?

    Es importante identificar a los usuarios finales del proyecto. Conocer a los destinatarios ayuda a orientar correctamente el desarrollo del proyecto. Dependiendo del caso, pueden ser:

    • Empresas.
    • Organismos públicos.
    • Investigadores.
    • Médicos.
    • Ingenieros.
    • Agricultores.
    • Usuarios finales.

    ¿Qué impacto tendrá la solución?

    Debe explicarse cómo contribuirá el proyecto a resolver el problema identificado. Por ejemplo: En un proyecto de predicción del almacenamiento global de agua, un sistema de predicción preciso podría permitir:

    • Anticipar periodos de sequía.
    • Optimizar la gestión de embalses.
    • Mejorar la planificación agrícola.
    • Facilitar la toma de decisiones por parte de las administraciones públicas.

    En un proyecto de predicción de vacunación H1N1, el modelo podría utilizarse para:

    • Identificar grupos con baja probabilidad de vacunación.
    • Diseñar campañas de concienciación más eficaces.
    • Optimizar la distribución de recursos sanitarios.

    Resultado esperado de Business Understanding

    Al finalizar esta fase todavía no se ha analizado ningún dato.

    Sin embargo, el equipo debe disponer de un documento que describa con claridad:

    • El problema que se pretende resolver.
    • El contexto del dominio.
    • Los objetivos del proyecto.
    • Los usuarios o entidades interesados.
    • El impacto esperado.
    • Las restricciones conocidas.
    • Los criterios que determinarán el éxito del proyecto.

    Este documento constituye la referencia para todas las fases posteriores de la metodología y permite asegurar que el desarrollo técnico del proyecto permanezca alineado con el problema real que se desea resolver.

    Flujo de trabajo de Business Understanding

    Aunque cada proyecto presenta características particulares, la fase de Business Understanding suele seguir una secuencia de trabajo bastante similar. El objetivo es comprender completamente el problema antes de comenzar a trabajar con los datos.

    Una metodología reproducible puede estructurarse en las siguientes tareas.

    1. Definir el problema del mundo real

    El primer paso consiste en describir el problema utilizando el lenguaje propio del dominio y no el de la Ciencia de Datos. En esta etapa todavía no se habla de algoritmos, variables o modelos predictivos.

    Por ejemplo:

    Proyecto de almacenamiento global de agua

    Los recursos hídricos disponibles disminuyen debido al cambio climático y a la creciente demanda de agua. Disponer de predicciones precisas del almacenamiento de agua permitiría mejorar la planificación y gestión de estos recursos.

    Proyecto H1N1

    No todas las personas aceptan vacunarse frente a la gripe H1N1. Identificar los factores asociados a la vacunación puede ayudar a mejorar las campañas de salud pública.

    Sistema de detección de fraude

    Las entidades financieras necesitan detectar operaciones fraudulentas antes de que provoquen pérdidas económicas.

    El resultado de esta tarea debe ser una descripción clara del problema que cualquier persona pueda comprender sin necesidad de conocimientos técnicos.

    2. Comprender el dominio del problema

    Una vez definido el problema, es necesario estudiar cómo funciona el dominio en el mundo real. Esta es probablemente la actividad más importante de toda la fase de Business Understanding. El objetivo consiste en responder preguntas como:

    • ¿Cómo funciona realmente el proceso?
    • ¿Qué factores intervienen?
    • ¿Qué conceptos son fundamentales?
    • ¿Qué organismos o entidades participan?
    • ¿Qué indicadores son relevantes?

    Por ejemplo, antes de analizar un conjunto de datos sobre almacenamiento global de agua sería recomendable comprender conceptos como:

    • Ciclo hidrológico.
    • Aguas superficiales.
    • Aguas subterráneas.
    • Humedad del suelo.
    • Evapotranspiración.
    • Cobertura de nieve.
    • Embalses.
    • Acuíferos.
    • Balance hídrico.

    En un proyecto sanitario sería conveniente estudiar previamente:

    • Funcionamiento de la enfermedad.
    • Factores de riesgo.
    • Protocolos médicos.
    • Variables epidemiológicas.
    • Campañas de prevención.

    Este conocimiento permitirá posteriormente interpretar correctamente las variables del conjunto de datos.

    3. Identificar a los interesados (Stakeholders)

    Todo proyecto pretende aportar valor a uno o varios usuarios. Conocer a los usuarios finales ayuda a comprender mejor cuáles son sus necesidades y expectativas. Es importante identificar quién utilizará los resultados obtenidos.

    Algunos ejemplos son:

    • Empresas.
    • Administraciones públicas.
    • Hospitales.
    • Investigadores.
    • Departamentos de marketing.
    • Agricultores.
    • Organismos internacionales.

    4. Definir los objetivos del proyecto

    Una vez comprendido el problema, deben establecerse los objetivos concretos que se pretenden alcanzar. Estos objetivos deben describirse desde la perspectiva del negocio o del dominio de aplicación.

    Por ejemplo:

    Proyecto de almacenamiento global de agua

    • Mejorar la gestión de los recursos hídricos.
    • Anticipar periodos de sequía.
    • Facilitar la planificación agrícola.

    Proyecto H1N1

    • Incrementar la cobertura vacunal.
    • Identificar grupos de riesgo.
    • Optimizar las campañas de vacunación.

    Todavía no se habla del algoritmo que se utilizará.

    5. Identificar restricciones

    Todo proyecto presenta limitaciones que condicionan el desarrollo de la solución. Entre las más habituales se encuentran:

    • Disponibilidad de datos.
    • Calidad de los datos.
    • Tiempo disponible.
    • Recursos computacionales.
    • Restricciones legales.
    • Coste económico.
    • Requisitos de interpretabilidad.

    Estas restricciones deberán tenerse en cuenta durante todo el proyecto.

    6. Identificar riesgos

    También resulta conveniente identificar los posibles riesgos antes de comenzar el análisis.

    Por ejemplo:

    • Datos incompletos.
    • Sesgos en el conjunto de datos.
    • Cambios futuros en el fenómeno estudiado.
    • Errores de medición.
    • Información desactualizada.

    Detectar estos riesgos desde el principio facilita la planificación del proyecto.

    7. Definir los criterios de éxito

    Uno de los errores más frecuentes consiste en considerar que un proyecto tiene éxito simplemente porque el modelo obtiene una buena métrica. En realidad, el éxito debe definirse antes de comenzar el proyecto.

    Algunos ejemplos podrían ser:

    • Superar el rendimiento del modelo base.
    • Alcanzar un determinado valor de ROC-AUC.
    • Reducir el error de predicción.
    • Disminuir el número de falsos negativos.
    • Obtener un modelo suficientemente interpretable.
    • Reducir el tiempo de cálculo.

    Estos criterios servirán posteriormente para evaluar si la solución realmente cumple los objetivos planteados.

    8. Traducir el problema a Ciencia de Datos

    La última tarea consiste en transformar el problema del mundo real en un problema que pueda resolverse mediante técnicas de Ciencia de Datos. Esta transición marca el final de la fase de Business Understanding y el comienzo de la siguiente etapa de la metodología.

    Por ejemplo:

    Problema realProblema de Ciencia de Datos
    Predecir quién aceptará vacunarseProblema de clasificación binaria
    Estimar el almacenamiento futuro de aguaProblema de regresión o series temporales
    Detectar operaciones fraudulentasClasificación binaria
    Recomendar cursos de formaciónSistema de recomendación

    A partir de este momento el proyecto ya está preparado para definir el enfoque analítico (Analytic Approach) y comenzar la planificación técnica de la solución.

    Resultado esperado de la fase

    Al finalizar Business Understanding se debe disponer de un documento que describa de forma clara y estructurada:

    • El problema que se pretende resolver.
    • El contexto del dominio.
    • Los conceptos fundamentales del área de conocimiento.
    • Los objetivos del proyecto.
    • Los usuarios o entidades interesadas.
    • Las restricciones existentes.
    • Los riesgos identificados.
    • Los criterios de éxito.
    • La traducción del problema a un problema de Ciencia de Datos.

    Este documento constituye la referencia para todas las etapas posteriores y permite mantener el proyecto alineado con las necesidades reales del dominio de aplicación, evitando que las decisiones técnicas se tomen desconectadas del problema que se desea resolver.

  • LLM Classification Finetuning

    LLM Classification Finetuning

    Predicción de Preferencias Humanas entre Modelos de Lenguaje (LLM)

    La inteligencia artificial conversacional ha experimentado un crecimiento extraordinario durante los últimos años. Modelos como GPT, Gemini, Claude, Llama o Qwen son capaces de responder preguntas, redactar textos, generar código o resolver problemas complejos. Sin embargo, disponer de un modelo técnicamente potente no garantiza que sus respuestas sean las que los usuarios prefieren.

    En este proyecto participaremos en una competición de Kaggle cuyo objetivo es desarrollar un modelo de aprendizaje automático capaz de predecir qué respuesta será la preferida por un usuario cuando compara las respuestas generadas por dos grandes modelos de lenguaje (LLM). Este tipo de problemas constituye uno de los pilares del desarrollo de asistentes de inteligencia artificial modernos y está estrechamente relacionado con el aprendizaje por refuerzo basado en retroalimentación humana (RLHF).

    Actualmente el proyecto se encuentra en fase de elaboración. En los próximos artículos iremos documentando todo el proceso, desde el análisis exploratorio de los datos hasta la construcción y evaluación de diferentes modelos de Machine Learning y Deep Learning.

    Objetivo del proyecto

    El objetivo consiste en construir un clasificador que, a partir de un prompt y de las respuestas generadas por dos modelos de lenguaje distintos, sea capaz de predecir cuál de ellas será elegida por el usuario.

    Cada conversación pertenece a una de las siguientes categorías:

    • Victoria del Modelo A.
    • Victoria del Modelo B.
    • Empate entre ambas respuestas.

    El modelo deberá estimar la probabilidad de cada una de estas tres clases.

    ¿Por qué es importante este problema?

    Los grandes modelos de lenguaje se utilizan cada vez más en aplicaciones reales como asistentes virtuales, buscadores inteligentes, herramientas de programación o sistemas de atención al cliente.

    Sin embargo, evaluar automáticamente la calidad de una respuesta sigue siendo un problema abierto. Dos respuestas pueden ser técnicamente correctas y, aun así, los usuarios pueden preferir una sobre otra por motivos como:

    • Claridad.
    • Precisión.
    • Longitud adecuada.
    • Naturalidad.
    • Organización de la información.
    • Facilidad de comprensión.

    Aprender estas preferencias humanas permite desarrollar asistentes más útiles y satisfactorios para los usuarios.

    Relación con RLHF

    Esta competición está directamente relacionada con el aprendizaje por refuerzo a partir de retroalimentación humana (Reinforcement Learning from Human Feedback, RLHF).

    En lugar de entrenar un modelo únicamente con datos etiquetados, se utilizan las preferencias reales de los usuarios para construir un modelo de recompensa (Reward Model) capaz de estimar cuál de dos respuestas resulta más atractiva.

    Posteriormente, estos modelos de recompensa pueden emplearse para mejorar el entrenamiento de nuevos LLM mediante técnicas de aprendizaje por refuerzo.

    El conjunto de datos

    Los datos proceden de Chatbot Arena, una plataforma donde miles de usuarios comparan respuestas generadas por distintos modelos de lenguaje sin conocer cuál las ha producido.

    Cada registro contiene información similar a:

    • El prompt introducido por el usuario.
    • La respuesta del Modelo A.
    • La respuesta del Modelo B.
    • La decisión final del usuario.

    Esta información proporciona un conjunto de datos muy valioso para estudiar las preferencias humanas frente a respuestas generadas por inteligencia artificial.

    Métrica de evaluación

    La competición utiliza como métrica la pérdida logarítmica (Log Loss).

    Esta métrica evalúa la calidad de las probabilidades predichas por el modelo. Cuanto menor sea la pérdida logarítmica, mejores serán las predicciones.

    A diferencia de la precisión (Accuracy), la Log Loss penaliza especialmente las predicciones muy seguras cuando resultan incorrectas.

    Tecnologías que utilizaremos

    A lo largo del proyecto exploraremos diferentes enfoques, desde modelos clásicos de Machine Learning hasta modelos basados en Transformers.

    Entre las herramientas previstas se encuentran:

    • Python.
    • Pandas.
    • NumPy.
    • Scikit-learn.
    • LightGBM.
    • XGBoost.
    • CatBoost.
    • Hugging Face Transformers.
    • Sentence Transformers.
    • PyTorch.
    • Plotly para visualización.

    También analizaremos el rendimiento de diferentes técnicas de representación del texto mediante embeddings modernos.

    Metodología del proyecto

    El desarrollo seguirá una metodología completa de ciencia de datos.

    Las principales fases serán:

    1. Comprensión del problema.
    2. Análisis exploratorio de los datos (EDA).
    3. Limpieza y preparación del texto.
    4. Ingeniería de características.
    5. Construcción de modelos base.
    6. Modelos basados en embeddings.
    7. Fine-tuning de Transformers.
    8. Optimización de hiperparámetros.
    9. Validación y evaluación.
    10. Generación de la predicción final para Kaggle.

    Cada etapa contará con su correspondiente notebook y explicación detallada.

    Qué aprenderemos durante el proyecto

    Este proyecto permitirá profundizar en numerosos conceptos relacionados con el procesamiento del lenguaje natural y el aprendizaje automático.

    Entre ellos destacan:

    • Clasificación multiclase.
    • Procesamiento de lenguaje natural (NLP).
    • Representación vectorial de texto.
    • Embeddings.
    • Transformers.
    • Modelos de preferencia.
    • RLHF.
    • Fine-tuning de modelos preentrenados.
    • Validación cruzada.
    • Ensamblado de modelos.

    Estado del proyecto

    Actualmente el proyecto se encuentra en fase inicial.

    En las próximas publicaciones iremos documentando paso a paso el desarrollo completo de la solución, mostrando tanto los aciertos como los problemas encontrados durante el proceso. El objetivo no será únicamente obtener una buena posición en la clasificación de Kaggle, sino construir un proyecto reproducible y con un fuerte enfoque didáctico que sirva como referencia para cualquier persona interesada en el aprendizaje automático aplicado al procesamiento del lenguaje natural.

    Conclusión

    La predicción de preferencias humanas entre respuestas generadas por modelos de lenguaje representa uno de los desafíos más interesantes dentro del campo de la inteligencia artificial actual. Combina técnicas de Machine Learning, Deep Learning y Procesamiento del Lenguaje Natural con un objetivo claramente orientado a mejorar la interacción entre personas y sistemas conversacionales.

    A lo largo de este proyecto exploraremos distintas estrategias para abordar este problema, compararemos múltiples modelos y analizaremos sus resultados de forma rigurosa. Además de participar en la competición de Kaggle, el proyecto servirá como una excelente oportunidad para profundizar en tecnologías que desempeñan un papel fundamental en el desarrollo de los asistentes de inteligencia artificial de última generación.

  • Urban Air Pollution Prediction by Ngao Labs

    Urban Air Pollution Prediction by Ngao Labs

    La contaminación atmosférica representa uno de los mayores desafíos ambientales y de salud pública a nivel mundial. Entre los distintos contaminantes presentes en el aire, las partículas finas PM2.5 son especialmente preocupantes debido a su reducido tamaño, que les permite penetrar profundamente en los pulmones e incluso alcanzar el torrente sanguíneo, aumentando el riesgo de enfermedades respiratorias, cardiovasculares y otros problemas de salud.

    Restricciones sobre la publicación y uso de los datos

    El conjunto de datos utilizado en este proyecto es proporcionado exclusivamente para la participación en la competición Bootcamp Challenge by Ngao Labs: Urban Air Pollution Prediction organizada en la plataforma Zindi.

    De acuerdo con las normas de la competición, los datos no pueden ser redistribuidos, publicados ni compartidos con terceros, incluyendo su publicación en repositorios públicos como GitHub, Kaggle o cualquier otro servicio de almacenamiento accesible públicamente. Asimismo, no está permitido utilizar el conjunto de datos para fines distintos a los contemplados por la competición.

    Por este motivo, este artículo documenta únicamente la metodología empleada, el proceso de análisis, la ingeniería de características, los modelos desarrollados y los resultados obtenidos, sin reproducir ni distribuir el conjunto de datos original. Las visualizaciones, tablas y ejemplos que puedan incluirse respetarán en todo momento las condiciones de uso establecidas por la organización del desafío.

    Estado del proyecto

    En elaboración (la competición comienza el 28 de junio de 2026).

    En este proyecto se desarrollará un modelo de Machine Learning capaz de predecir la concentración diaria de partículas PM2.5 en ciudades de todo el mundo utilizando información meteorológica y observaciones obtenidas por el satélite Sentinel-5P. El objetivo es estimar la calidad del aire incluso en regiones donde no existen estaciones terrestres de monitorización, proporcionando una herramienta de gran utilidad para la vigilancia ambiental y la toma de decisiones.

    Este trabajo forma parte del Bootcamp Challenge by Ngao Labs: Urban Air Pollution Prediction, una competición organizada en la plataforma Zindi cuyo propósito es fomentar el aprendizaje práctico mediante la resolución de problemas reales de ciencia de datos.

    Actualmente la competición aún no ha comenzado, por lo que el conjunto de datos todavía no está disponible para los participantes. Una vez publicado, este proyecto documentará todas las fases del desarrollo, desde el análisis exploratorio de los datos hasta la construcción, evaluación y optimización del modelo predictivo.

    Objetivo del proyecto

    El objetivo principal consiste en construir un modelo de regresión capaz de predecir la concentración diaria de partículas PM2.5 para múltiples ciudades utilizando información procedente de:

    • Observaciones del satélite Sentinel-5P.
    • Variables meteorológicas.
    • Información temporal.
    • Variables ambientales proporcionadas por la organización.

    El reto consiste en aproximar una medida que normalmente requiere sensores terrestres mediante información obtenida desde satélites y otras fuentes ambientales.

    ¿Qué es PM2.5?

    PM2.5 hace referencia a las partículas en suspensión con un diámetro inferior a 2,5 micrómetros, aproximadamente treinta veces más pequeñas que el grosor de un cabello humano.

    Estas partículas pueden permanecer suspendidas en la atmósfera durante largos periodos y desplazarse cientos de kilómetros. Debido a su tamaño, penetran profundamente en el sistema respiratorio y están asociadas con:

    • Enfermedades respiratorias.
    • Enfermedades cardiovasculares.
    • Incremento del riesgo de ictus.
    • Agravamiento del asma.
    • Mayor vulnerabilidad frente a infecciones respiratorias.

    Por ello, la concentración de PM2.5 constituye uno de los principales indicadores utilizados para evaluar la calidad del aire.

    Importancia de la predicción de la calidad del aire

    La monitorización de la calidad del aire depende habitualmente de estaciones terrestres equipadas con sensores especializados. Sin embargo, muchas regiones del mundo, especialmente en países en desarrollo, cuentan con una cobertura muy limitada.

    La utilización de datos satelitales combinados con técnicas de Machine Learning permite estimar los niveles de contaminación incluso en zonas sin infraestructura de medición, facilitando:

    • Sistemas de alerta temprana.
    • Estudios epidemiológicos.
    • Planificación urbana.
    • Evaluación de políticas medioambientales.
    • Investigación sobre cambio climático.
    • Gestión de riesgos para la salud pública.

    Descripción de la competición

    El desafío consiste en predecir la concentración diaria de partículas PM2.5 utilizando información meteorológica y observaciones atmosféricas registradas por el satélite Sentinel-5P.

    El conjunto de datos abarca aproximadamente los últimos tres meses e incluye cientos de ciudades distribuidas por diferentes regiones del mundo.

    Se trata de un problema de aprendizaje supervisado de regresión, donde el objetivo es estimar una variable continua correspondiente a la concentración diaria de PM2.5.

    Tecnologías previstas

    Durante el desarrollo del proyecto se emplearán diferentes herramientas del ecosistema de ciencia de datos en Python, entre ellas:

    • Python
    • Pandas
    • NumPy
    • Matplotlib
    • Seaborn
    • Scikit-learn
    • LightGBM
    • XGBoost (si está permitido por las reglas de la competición)
    • CatBoost
    • Optuna para optimización de hiperparámetros

    La selección definitiva de modelos dependerá de las características del conjunto de datos una vez esté disponible.

    Metodología

    El proyecto seguirá una metodología completa de ciencia de datos que incluirá:

    • Comprensión del problema.
    • Análisis exploratorio de datos (EDA).
    • Limpieza y preparación del conjunto de datos.
    • Ingeniería de características.
    • Selección de variables.
    • Entrenamiento de modelos.
    • Optimización de hiperparámetros.
    • Validación del modelo.
    • Generación de predicciones para la competición.
    • Análisis de resultados y conclusiones.

    Toda la documentación del proceso será publicada progresivamente conforme avance el desarrollo del proyecto.

    Estado actual

    La competición comenzará el 28 de junio de 2026, por lo que en este momento el conjunto de datos todavía no está disponible.

    Una vez publicados los datos se incorporarán nuevas secciones con:

    • Análisis exploratorio.
    • Estudio de valores ausentes.
    • Análisis de correlaciones.
    • Ingeniería de variables.
    • Evaluación de modelos.
    • Comparativa de algoritmos.
    • Resultados obtenidos.
    • Conclusiones finales.

    Próximos pasos

    Tras la apertura oficial de la competición se documentarán todas las fases del proyecto, incluyendo tanto los aspectos técnicos como las decisiones adoptadas durante el desarrollo del modelo predictivo.

    Este artículo se actualizará de forma continua hasta la finalización del proyecto, mostrando el proceso completo seguido para construir una solución de predicción de contaminación atmosférica basada en datos satelitales y técnicas modernas de Machine Learning.

  • Barbados Historic Handwriting Challenge

    Barbados Historic Handwriting Challenge

    La digitalización del patrimonio documental constituye uno de los mayores desafíos actuales dentro de la preservación histórica. Millones de documentos manuscritos permanecen almacenados en archivos de todo el mundo sin estar disponibles en formato digital debido a la dificultad que supone transcribir textos escritos a mano hace siglos.

    El R.O.A.D. Barbados Historic Handwriting Challenge, organizado por Zindi, propone desarrollar un modelo de Inteligencia Artificial capaz de reconocer automáticamente escritura manuscrita histórica procedente de los archivos nacionales de Barbados. El objetivo es convertir imágenes de documentos históricos en texto digital, facilitando su conservación, búsqueda y estudio por parte de investigadores, historiadores y la sociedad en general.

    Estado del proyecto

    Última actualización: 26 de junio de 2026

    🚧 Proyecto en desarrollo

    Objetivo del proyecto

    El objetivo consiste en desarrollar un sistema de Handwritten Text Recognition (HTR) capaz de transcribir correctamente palabras manuscritas presentes en documentos históricos de los siglos XVIII y XIX.

    Cada muestra del conjunto de datos contiene una imagen recortada con una o varias palabras escritas a mano. El modelo deberá aprender a interpretar distintos estilos de escritura antigua, tinta degradada, documentos deteriorados y otras imperfecciones propias del paso del tiempo.

    El resultado esperado es una transcripción textual lo más fiel posible al contenido original.

    El reto

    Este proyecto presenta numerosas dificultades que lo diferencian de un problema clásico de OCR:

    • Escritura manuscrita muy variable.
    • Caligrafía de los siglos XVIII y XIX.
    • Documentos con tinta desvanecida.
    • Papel deteriorado.
    • Manchas y ruido visual.
    • Espaciado irregular entre caracteres y palabras.
    • Diferentes tamaños y estilos de escritura.

    Todo ello convierte este desafío en un problema avanzado de visión por computador y reconocimiento de texto.

    Dataset

    El conjunto de datos está compuesto por aproximadamente 6.000 imágenes obtenidas a partir de documentos históricos reales conservados en los archivos nacionales de Barbados. Cada imagen contiene una línea manuscrita con una o varias palabras.

    Los documentos originales incluyen:

    • Escrituras de propiedad.
    • Testamentos.
    • Inventarios.
    • Registros legales.
    • Documentación administrativa histórica.

    Por razones de licencia, el conjunto de datos únicamente puede utilizarse durante la competición y no puede redistribuirse ni emplearse para otros fines.

    Tecnologías previstas

    Durante el desarrollo del proyecto se evaluarán distintas técnicas empleadas habitualmente en reconocimiento de texto manuscrito, entre ellas:

    • Python
    • PyTorch
    • OpenCV
    • Transformers
    • Vision Transformers (ViT)
    • Modelos CNN + BiLSTM + CTC
    • TrOCR
    • Donut
    • Técnicas de Data Augmentation
    • Beam Search Decoding

    La selección definitiva dependerá de los resultados obtenidos durante la fase experimental.

    Métrica de evaluación

    La competición utiliza una evaluación combinada basada en dos métricas:

    • Character Error Rate (CER), que mide los errores a nivel de carácter.
    • Word Error Rate (WER), que mide los errores a nivel de palabra.

    La puntuación final corresponde a la media ponderada entre ambas métricas, otorgando el mismo peso a cada una.

    Este sistema permite evaluar tanto la precisión ortográfica como la calidad global de la transcripción.

    Estado del proyecto

    Actualmente el proyecto se encuentra en fase de preparación.

    Las siguientes etapas previstas serán:

    • Exploración del dataset.
    • Análisis de las imágenes.
    • Preprocesamiento.
    • Construcción del primer modelo base.
    • Optimización y experimentación con arquitecturas HTR.
    • Evaluación y envío de resultados a la competición.
    • Documentación completa del desarrollo.

    Una vez comience oficialmente la competición, esta página irá incorporando todas las fases del proyecto, desde el análisis exploratorio hasta la construcción del modelo final y las conclusiones obtenidas.

    Próximamente

    Próximamente se publicarán:

    • Exploración del dataset.
    • Análisis de calidad de las imágenes.
    • Preprocesamiento para reconocimiento de escritura.
    • Modelos base de Handwritten Text Recognition.
    • Entrenamiento y validación.
    • Comparativa entre arquitecturas.
    • Resultados y conclusiones finales.