Categoría: data science

  • Data Understanding (Comprensión de los Datos)

    La Data Understanding (Comprensión de los Datos) es una de las fases más importantes dentro de la metodología de la Ciencia de Datos. Su objetivo consiste en explorar, comprender y evaluar los datos recopilados para determinar si son adecuados para resolver el problema de negocio definido en las etapas anteriores.

    Durante esta fase se analizan las características del conjunto de datos, su estructura, calidad, distribución, relaciones entre variables y posibles problemas que puedan afectar al desarrollo del modelo de Machine Learning. La comprensión de los datos constituye el primer contacto analítico con la información disponible y permite identificar oportunidades, limitaciones y necesidades de preparación antes de comenzar el modelado.

    Una buena comprensión de los datos reduce significativamente el riesgo de construir modelos sobre información incompleta, inconsistente o sesgada, facilitando la toma de decisiones durante las siguientes fases del proyecto.

    ¿Qué es Data Understanding?

    Data Understanding es el proceso de exploración y análisis inicial del conjunto de datos con el fin de conocer su contenido, calidad y comportamiento.

    Esta fase busca responder preguntas como:

    • ¿Qué información contienen los datos?
    • ¿Son suficientes para resolver el problema?
    • ¿Existen errores o inconsistencias?
    • ¿Qué variables son relevantes?
    • ¿Qué relaciones existen entre ellas?
    • ¿Qué problemas deberán resolverse durante la preparación de datos?

    El resultado es un conocimiento profundo del conjunto de datos antes de aplicar cualquier transformación.

    Objetivos de Data Understanding

    La fase de comprensión de los datos persigue varios objetivos.

    Entre los principales destacan:

    • Conocer la estructura del conjunto de datos.
    • Identificar problemas de calidad.
    • Detectar valores nulos.
    • Detectar valores atípicos.
    • Analizar la distribución de las variables.
    • Comprender las relaciones entre variables.
    • Identificar posibles sesgos.
    • Validar que los datos cumplen los requisitos definidos previamente.

    Preguntas que debe responder

    Una correcta fase de Data Understanding debería responder, al menos, las siguientes preguntas.

    Sobre la estructura de los datos

    • ¿Cuántos registros existen?
    • ¿Cuántas variables contiene el conjunto?
    • ¿Qué tipo de variables hay?
    • ¿Cuál es la variable objetivo?
    • ¿Qué significado tiene cada atributo?

    Sobre la calidad de los datos

    • ¿Existen valores nulos?
    • ¿Hay registros duplicados?
    • ¿Existen errores de formato?
    • ¿Hay valores inconsistentes?
    • ¿Los datos cumplen las reglas del negocio?

    Sobre las variables

    • ¿Qué variables son numéricas?
    • ¿Cuáles son categóricas?
    • ¿Qué variables presentan alta cardinalidad?
    • ¿Existen variables constantes?
    • ¿Hay variables redundantes?

    Sobre las distribuciones

    • ¿Las variables siguen distribuciones normales?
    • ¿Existen valores extremos?
    • ¿Hay variables muy sesgadas?
    • ¿Es necesario transformar alguna variable?

    Sobre las relaciones

    • ¿Existen correlaciones elevadas?
    • ¿Hay multicolinealidad?
    • ¿Qué variables parecen más importantes?
    • ¿Cómo se relacionan con la variable objetivo?

    Sobre el problema

    • ¿Los datos representan correctamente el negocio?
    • ¿Será necesario recopilar información adicional?
    • ¿Existen limitaciones importantes?

    Responder estas preguntas facilita enormemente las siguientes fases del proyecto.

    Resultado esperado

    Al finalizar la fase de Data Understanding debería disponerse de:

    • Un conocimiento profundo del conjunto de datos.
    • Un inventario de problemas detectados.
    • Un análisis de calidad de los datos.
    • Estadísticas descriptivas.
    • Visualizaciones exploratorias.
    • Identificación de valores nulos.
    • Identificación de duplicados.
    • Identificación de valores atípicos.
    • Relación entre variables.
    • Hipótesis iniciales sobre el comportamiento de los datos.
    • Un plan para la fase de Data Preparation.

    En otras palabras, el resultado esperado no es un modelo entrenado, sino una comprensión completa del conjunto de datos y una lista clara de acciones necesarias antes del modelado.

    Flujo de trabajo

    Una forma habitual de abordar esta fase consiste en seguir el siguiente flujo de trabajo.

    1. Cargar el conjunto de datos.
    2. Inspeccionar su estructura general.
    3. Analizar los tipos de datos.
    4. Calcular estadísticas descriptivas.
    5. Analizar la calidad de los datos.
    6. Detectar valores nulos.
    7. Detectar registros duplicados.
    8. Detectar valores atípicos.
    9. Analizar la distribución de las variables.
    10. Estudiar la relación entre variables.
    11. Analizar la variable objetivo.
    12. Documentar las conclusiones.
    13. Definir las tareas de Data Preparation.

    Este flujo puede repetirse varias veces a medida que aparecen nuevos conocimientos sobre los datos.

    ¿Cómo funciona?

    La comprensión de los datos combina análisis estadístico y visualización. Durante esta fase suelen realizarse actividades como:

    • Estadística descriptiva.
    • Visualización de distribuciones.
    • Histogramas.
    • Diagramas de caja.
    • Diagramas de dispersión.
    • Matrices de correlación.
    • Tablas de frecuencias.
    • Análisis de valores nulos.
    • Perfilado de datos (Data Profiling).

    No se modifican todavía los datos, únicamente se analizan.

    Principales actividades

    Las tareas más habituales incluyen:

    • Exploración inicial.
    • Data Profiling.
    • Análisis univariante.
    • Análisis bivariante.
    • Análisis multivariante.
    • Evaluación de calidad.
    • Detección de anomalías.
    • Comprensión del significado de las variables.
    • Identificación de posibles transformaciones.

    Ejemplo conceptual

    Supongamos un conjunto de datos de clientes.

    Durante la fase de Data Understanding podrían detectarse situaciones como:

    • La edad contiene valores negativos.
    • El 30 % de los ingresos son nulos.
    • Existen clientes duplicados.
    • El género presenta categorías inconsistentes.
    • El precio contiene valores extremos.

    Todos estos problemas deberán resolverse posteriormente durante la preparación de datos.

    Ejemplo práctico

    Imaginemos un conjunto de datos para predecir el abandono de clientes.

    Durante el análisis se detecta que:

    ObservaciónResultado
    Registros50.000
    Variables35
    Valores nulos8 %
    Duplicados245
    Variables categóricas12
    Variables numéricas23
    Variable objetivoChurn

    Este análisis constituye la base del plan de limpieza y preparación de datos.

    Data Understanding vs Data Preparation

    Ambas fases están estrechamente relacionadas, aunque cumplen funciones diferentes.

    Data UnderstandingData Preparation
    Analiza los datosModifica los datos
    Detecta problemasCorrige problemas
    ExploraTransforma
    Genera conocimientoGenera un conjunto listo para modelar
    No altera los datos originalesProduce un nuevo conjunto preparado

    Comprender los datos siempre precede a su preparación.

    Beneficios

    Una correcta fase de Data Understanding ofrece numerosas ventajas.

    • Reduce errores durante el modelado.
    • Facilita la selección de variables.
    • Mejora la calidad del conjunto de datos.
    • Reduce el riesgo de sobreajuste.
    • Permite detectar problemas tempranamente.
    • Facilita la comunicación entre los equipos.
    • Aumenta la confianza en los resultados obtenidos.

    ¿Cuándo realizar Data Understanding?

    Esta fase debe comenzar inmediatamente después de la recopilación de datos.

    También resulta recomendable repetirla cuando:

    • Se incorporan nuevas fuentes de información.
    • Cambian los datos disponibles.
    • Aparecen nuevas variables.
    • Se detectan problemas durante el modelado.
    • Se actualiza el conjunto de datos.

    En proyectos iterativos es habitual regresar varias veces a esta fase.

    Ventajas y desventajas

    VentajasDesventajas
    Detecta problemas antes del modeladoPuede consumir bastante tiempo
    Mejora la calidad del proyectoRequiere conocimientos estadísticos
    Facilita la preparación de datosGrandes conjuntos de datos pueden dificultar el análisis
    Reduce errores posterioresPuede ser necesario repetir el proceso
    Permite comprender el negocio a través de los datosNo corrige directamente los problemas encontrados

    Limitaciones

    Aunque resulta imprescindible, presenta algunas limitaciones.

    • No corrige los problemas detectados.
    • Depende de la calidad de los datos recopilados.
    • Algunas anomalías solo aparecen durante el entrenamiento del modelo.
    • Puede resultar costosa en conjuntos de datos muy grandes.
    • Requiere experiencia para interpretar correctamente los resultados.

    Por ello, suele combinarse con herramientas automáticas de perfilado de datos.

    Buenas prácticas

    Para desarrollar correctamente la fase de Data Understanding se recomienda:

    • Comprender previamente el problema de negocio.
    • Analizar tanto variables numéricas como categóricas.
    • Documentar todas las observaciones realizadas.
    • Combinar análisis estadístico y visual.
    • No modificar los datos durante esta fase.
    • Validar los resultados con expertos del dominio cuando sea necesario.
    • Registrar todas las hipótesis que surjan durante el análisis.
    • Elaborar un plan de acciones para la fase de Data Preparation.

    Conclusión

    La Data Understanding constituye una de las fases más importantes dentro de la metodología de la Ciencia de Datos, ya que proporciona una comprensión profunda de la información disponible antes de iniciar cualquier transformación o proceso de modelado. A través del análisis exploratorio, la evaluación de la calidad de los datos y el estudio de las relaciones entre variables, es posible identificar problemas, validar hipótesis y planificar las tareas necesarias para preparar correctamente el conjunto de datos.

    Lejos de ser una simple revisión inicial, esta fase representa el fundamento sobre el que se construirá todo el proyecto analítico. Una comprensión adecuada de los datos permite reducir riesgos, mejorar la calidad de los modelos y tomar decisiones fundamentadas durante las etapas posteriores de Data Preparation, Modeling y Evaluation, incrementando significativamente las probabilidades de éxito del proyecto de Ciencia de Datos.

  • Data Collection (Recolección de Datos)

    La Data Collection (Recolección de Datos) es una de las fases fundamentales de la metodología de la Ciencia de Datos. Su objetivo consiste en obtener los datos necesarios para responder al problema de negocio definido en las etapas anteriores del proyecto. Esta fase transforma los requisitos de datos (Data Requirements) en conjuntos de datos reales que posteriormente serán analizados, preparados y utilizados para entrenar modelos de Machine Learning.

    La calidad de cualquier proyecto analítico depende en gran medida de la calidad de los datos recopilados. Incluso el algoritmo más avanzado producirá resultados poco fiables si los datos son incompletos, inconsistentes o no representan correctamente el problema que se desea resolver.

    La recolección de datos implica mucho más que descargar un conjunto de datos. Incluye identificar fuentes de información, acceder a ellas, integrar datos procedentes de múltiples sistemas, validar su calidad inicial y documentar todo el proceso para garantizar la reproducibilidad del proyecto.

    ¿Qué es la Data Collection?

    La Data Collection es el proceso mediante el cual se obtienen los datos que serán utilizados durante el proyecto de Ciencia de Datos.

    Esta fase comprende actividades como:

    • Localizar las fuentes de datos.
    • Obtener permisos de acceso.
    • Extraer la información.
    • Integrar datos procedentes de diferentes sistemas.
    • Almacenar los datos.
    • Validar que cumplen los requisitos definidos previamente.

    El resultado es uno o varios conjuntos de datos preparados para iniciar la fase de Data Understanding.

    Objetivos de la Data Collection

    La recolección de datos persigue varios objetivos.

    Entre los principales destacan:

    • Obtener todos los datos necesarios.
    • Garantizar que los datos representan correctamente el problema.
    • Reducir pérdidas de información.
    • Minimizar errores durante la extracción.
    • Facilitar las fases posteriores del proyecto.
    • Mantener la trazabilidad del origen de los datos.

    ¿Cómo funciona?

    El proceso de recopilación suele desarrollarse siguiendo una serie de pasos.

    1. Revisar los Data Requirements.
    2. Identificar las fuentes de datos disponibles.
    3. Obtener acceso a dichas fuentes.
    4. Extraer la información.
    5. Integrar datos de distintos orígenes cuando sea necesario.
    6. Almacenar los datos de forma estructurada.
    7. Realizar una validación inicial de calidad.
    8. Documentar el proceso de extracción.

    Una correcta planificación reduce significativamente los problemas posteriores de limpieza y preparación de datos.

    Principales fuentes de datos

    Los datos pueden proceder de numerosas fuentes.

    Entre las más habituales se encuentran:

    • Bases de datos relacionales.
    • Data Warehouses.
    • Data Lakes.
    • APIs.
    • Archivos CSV.
    • Archivos Excel.
    • Archivos JSON.
    • Sensores IoT.
    • Aplicaciones empresariales.
    • Redes sociales.
    • Sistemas ERP.
    • Sistemas CRM.
    • Registros (logs) de aplicaciones.
    • Web Scraping.
    • Datos abiertos (Open Data).
    • Plataformas de competiciones como Kaggle o DrivenData.

    En muchos proyectos es necesario combinar varias fuentes simultáneamente.

    Tipos de datos recopilados

    Dependiendo del proyecto pueden obtenerse distintos tipos de información.

    • Datos estructurados.
    • Datos semiestructurados.
    • Datos no estructurados.
    • Series temporales.
    • Datos geoespaciales.
    • Imágenes.
    • Audio.
    • Vídeo.
    • Texto.
    • Registros de eventos.

    Cada tipo requiere estrategias de recopilación diferentes.

    Métodos de recolección de datos

    La adquisición de datos puede realizarse mediante diferentes mecanismos.

    MétodoEjemplo
    Consulta SQLExtraer datos de una base de datos
    API RESTObtener información desde un servicio web
    Lectura de archivosCSV, Excel, JSON o Parquet
    StreamingKafka, MQTT, Event Hub
    Web ScrapingExtraer información de páginas web
    SensoresIoT y dispositivos inteligentes
    EncuestasFormularios y cuestionarios
    Integración entre sistemasERP, CRM o Data Warehouse

    La elección dependerá del origen de los datos y de los requisitos del proyecto.

    Ejemplo conceptual

    Supongamos que una empresa desea desarrollar un modelo para predecir el abandono de clientes.

    Durante la fase de Data Collection podrían recopilarse datos procedentes de:

    • CRM.
    • Sistema de facturación.
    • Plataforma de atención al cliente.
    • Historial de incidencias.
    • Portal web.
    • Aplicación móvil.

    Posteriormente todos estos datos se integran en un único conjunto para su análisis.

    Ejemplo práctico

    Imaginemos un proyecto para predecir el precio de viviendas.

    La recopilación podría incluir:

    FuenteInformación obtenida
    CatastroSuperficie y antigüedad
    Portal inmobiliarioPrecio de venta
    Instituto Nacional de EstadísticaDatos demográficos
    API meteorológicaInformación climática
    Sistema GISUbicación geográfica

    La combinación de estas fuentes permite construir un conjunto de datos mucho más completo.

    Data Collection vs Data Requirements

    Aunque ambas fases están relacionadas, cumplen funciones distintas.

    Data RequirementsData Collection
    Define qué datos son necesariosObtiene los datos
    Actividad de planificaciónActividad de ejecución
    Se realiza antesSe realiza después
    Produce especificacionesProduce conjuntos de datos
    Depende del negocioDepende de las fuentes disponibles

    Los requisitos establecen las necesidades; la recolección las materializa.

    Beneficios

    Una correcta recolección de datos aporta numerosas ventajas.

    • Mejora la calidad del proyecto.
    • Reduce errores posteriores.
    • Disminuye el tiempo de preparación de datos.
    • Facilita la integración de múltiples fuentes.
    • Incrementa la fiabilidad de los modelos.
    • Favorece la reproducibilidad del proyecto.
    • Reduce costes derivados de datos incompletos.

    ¿Cuándo realizar la Data Collection?

    Esta fase debe ejecutarse una vez definidos los requisitos de datos.

    Resulta especialmente importante cuando:

    • Se inicia un nuevo proyecto.
    • Existen múltiples fuentes de información.
    • Se requiere información histórica.
    • Es necesario recopilar datos en tiempo real.
    • Deben integrarse diferentes sistemas.
    • Se trabaja con grandes volúmenes de información.

    En metodologías iterativas, la recolección puede repetirse durante varias fases del proyecto.

    Ventajas y desventajas

    VentajasDesventajas
    Permite obtener información realPuede requerir mucho tiempo
    Facilita modelos más precisosAlgunas fuentes pueden no estar disponibles
    Integra múltiples sistemasPuede generar problemas de compatibilidad
    Favorece la trazabilidadRequiere permisos y aspectos legales
    Reduce incertidumbreLa calidad inicial puede ser baja

    Limitaciones

    La recolección de datos presenta diversas limitaciones.

    • Restricciones legales o de privacidad.
    • Coste de acceso a determinadas fuentes.
    • Calidad insuficiente de los datos.
    • Cambios en las APIs o sistemas de origen.
    • Datos incompletos o inconsistentes.
    • Problemas de integración entre diferentes formatos.
    • Limitaciones de almacenamiento o infraestructura.

    Por ello, esta fase suele combinarse con procesos iniciales de validación.

    Buenas prácticas durante la Data Collection

    Para obtener conjuntos de datos de calidad se recomienda:

    • Documentar todas las fuentes utilizadas.
    • Registrar la fecha y versión de los datos.
    • Automatizar el proceso de extracción cuando sea posible.
    • Verificar permisos y aspectos legales.
    • Mantener copias de seguridad.
    • Conservar los datos originales sin modificaciones.
    • Registrar posibles incidencias durante la recopilación.
    • Validar el volumen y la estructura de los datos obtenidos.

    Buenas prácticas en Python

    Al implementar procesos de Data Collection mediante Python se recomienda:

    • Utilizar rutas configurables y no codificadas directamente.
    • Gestionar adecuadamente excepciones y errores de conexión.
    • Registrar los procesos mediante archivos de log.
    • Automatizar las extracciones repetitivas.
    • Validar la estructura de los datos tras cada extracción.
    • Conservar siempre una copia de los datos originales.
    • Modularizar el código para facilitar su mantenimiento.

    Conclusión

    La Data Collection constituye una fase crítica dentro de la metodología de la Ciencia de Datos, ya que transforma los requisitos de información definidos previamente en conjuntos de datos reales sobre los que se desarrollará todo el proyecto analítico. Una recopilación bien planificada garantiza que los datos sean completos, consistentes y adecuados para responder al problema de negocio.

    Aunque suele percibirse como una actividad puramente técnica, la recolección de datos requiere una estrecha colaboración entre los equipos de negocio, ingeniería y análisis, así como una correcta documentación de las fuentes, los procesos de extracción y las validaciones realizadas. Una ejecución rigurosa de esta fase facilita las etapas posteriores de Data Understanding, Data Preparation y Modeling, incrementando significativamente la calidad y la fiabilidad de los resultados obtenidos.

  • Data Requirements

    Los Data Requirements (Requisitos de Datos) constituyen una de las primeras actividades dentro de la metodología de la Ciencia de Datos. Su objetivo consiste en definir de forma precisa qué datos serán necesarios para responder al problema de negocio y desarrollar un modelo analítico capaz de cumplir los objetivos establecidos.

    Una definición adecuada de los requisitos de datos evita recopilar información innecesaria, reduce costes, acelera el desarrollo del proyecto y aumenta las probabilidades de éxito del modelo. Por el contrario, una definición incorrecta puede provocar retrasos, ausencia de información crítica o la imposibilidad de responder a las preguntas planteadas durante la fase de Business Understanding.

    Los Data Requirements actúan como el puente entre la comprensión del negocio y la recopilación de datos, permitiendo transformar los objetivos empresariales en necesidades concretas de información.

    ¿Qué son los Data Requirements?

    Los Data Requirements son el conjunto de especificaciones que describen los datos necesarios para desarrollar un proyecto de ciencia de datos.

    Estas especificaciones incluyen aspectos como:

    • Qué información debe recopilarse.
    • Qué variables serán necesarias.
    • Qué nivel de detalle requieren los datos.
    • Qué volumen de información será necesario.
    • Qué calidad mínima deben cumplir los datos.
    • De dónde se obtendrán los datos.
    • Con qué frecuencia deberán actualizarse.

    Su finalidad es garantizar que el conjunto de datos sea suficiente para responder al problema planteado.

    ¿Por qué son importantes?

    Un modelo de Machine Learning nunca podrá generar resultados mejores que la calidad de los datos utilizados para entrenarlo.

    Definir correctamente los requisitos de datos permite:

    • Evitar recopilar información innecesaria.
    • Reducir costes de almacenamiento.
    • Minimizar tiempos de adquisición.
    • Detectar limitaciones antes de comenzar el proyecto.
    • Identificar fuentes de datos alternativas.
    • Planificar correctamente la fase de Data Collection.

    Los requisitos de datos constituyen la base sobre la que se desarrollará el resto del proyecto.

    ¿Cómo funcionan?

    El proceso suele comenzar una vez finalizada la fase de Business Understanding. El flujo general puede resumirse en los siguientes pasos.

    1. Analizar los objetivos del negocio.
    2. Identificar las preguntas que deben responderse.
    3. Determinar qué información resulta necesaria.
    4. Definir las variables requeridas.
    5. Identificar las posibles fuentes de datos.
    6. Establecer criterios mínimos de calidad.
    7. Validar que los datos puedan obtenerse.

    El resultado es un documento que sirve como guía para la recopilación de datos.

    ¿Qué aspectos deben definirse?

    Los Data Requirements suelen especificar diversos aspectos del conjunto de datos.

    Variables necesarias

    Debe identificarse cada variable que será utilizada.

    Por ejemplo:

    • Edad.
    • Sexo.
    • Ingresos.
    • Historial de compras.
    • Fecha de compra.
    • Producto adquirido.
    • Ubicación.

    Variable objetivo

    Cuando el problema es supervisado también debe definirse claramente la variable objetivo.

    Por ejemplo:

    • Precio de una vivienda.
    • Probabilidad de abandono.
    • Diagnóstico médico.
    • Fraude.
    • Recomendación de un producto.

    Granularidad

    Es necesario establecer el nivel de detalle requerido.

    Ejemplos:

    • Datos por cliente.
    • Datos por pedido.
    • Datos diarios.
    • Datos horarios.
    • Datos por transacción.

    Una granularidad incorrecta puede impedir responder a determinadas preguntas.

    Cobertura temporal

    Debe definirse el periodo que abarcarán los datos.

    Ejemplos:

    • Últimos 12 meses.
    • Cinco años.
    • Toda la información histórica.
    • Datos en tiempo real.

    Volumen esperado

    También conviene estimar:

    • Número de registros.
    • Número de variables.
    • Tamaño aproximado del conjunto de datos.

    Esto permitirá planificar adecuadamente la infraestructura necesaria.

    Calidad mínima

    Los requisitos suelen incluir criterios como:

    • Porcentaje máximo de valores nulos.
    • Nivel aceptable de duplicados.
    • Consistencia entre tablas.
    • Exactitud de los datos.
    • Integridad referencial.

    Ejemplo conceptual

    Supongamos que una empresa desea predecir la cancelación de clientes.

    Los requisitos podrían ser:

    • Historial de facturación.
    • Antigüedad del cliente.
    • Número de incidencias.
    • Tipo de contrato.
    • Método de pago.
    • Consumo mensual.
    • Estado de cancelación.

    En este caso, los Data Requirements especifican exactamente qué información será necesaria antes de comenzar la recopilación.

    Ejemplo práctico

    Imaginemos un proyecto para predecir el precio de viviendas.

    Los requisitos podrían establecer:

    RequisitoEjemplo
    Variable objetivoPrecio de venta
    Variables predictorasSuperficie, habitaciones, baños, antigüedad, ubicación
    Cobertura temporalVentas de los últimos cinco años
    GranularidadUna fila por vivienda vendida
    Volumen esperadoMás de 50.000 registros
    CalidadMenos del 5 % de valores nulos

    Esta información servirá de guía durante la fase de adquisición de datos.

    Data Requirements vs Data Collection

    Ambos conceptos están estrechamente relacionados, aunque representan actividades diferentes.

    Data RequirementsData Collection
    Define qué datos son necesariosObtiene los datos
    Actividad de planificaciónActividad de ejecución
    Se realiza antesSe realiza después
    Produce especificacionesProduce conjuntos de datos
    Reduce riesgosMaterializa la recopilación

    Los requisitos preceden siempre a la recopilación.

    Beneficios

    Definir correctamente los requisitos de datos aporta numerosas ventajas.

    • Reduce el riesgo del proyecto.
    • Evita recopilar información innecesaria.
    • Facilita la planificación.
    • Reduce costes.
    • Mejora la calidad de los datos obtenidos.
    • Simplifica la comunicación entre equipos.
    • Aumenta las probabilidades de éxito del modelo.

    ¿Cuándo definir los Data Requirements?

    Esta actividad debe realizarse antes de iniciar la recopilación de datos.

    Resulta especialmente importante cuando:

    • Se desarrolla un nuevo proyecto.
    • Se trabaja con múltiples fuentes de información.
    • Existen limitaciones de acceso a los datos.
    • Se requieren datos históricos.
    • Deben integrarse diferentes bases de datos.
    • Se trabaja con grandes volúmenes de información.

    Nunca debería iniciarse la recopilación sin conocer previamente los requisitos.

    Ventajas y desventajas

    VentajasDesventajas
    Reduce incertidumbreRequiere tiempo de análisis inicial
    Facilita la recopilaciónPuede necesitar revisiones posteriores
    Evita recopilar datos innecesariosLos requisitos pueden cambiar durante el proyecto
    Mejora la comunicación entre equiposDepende de una correcta comprensión del negocio
    Reduce costesPuede resultar complejo en proyectos muy grandes

    Limitaciones

    Aunque resulta fundamental, esta fase presenta ciertas limitaciones.

    • Los requisitos pueden modificarse durante el proyecto.
    • Algunas fuentes de datos pueden no estar disponibles.
    • Es posible descubrir nuevas variables útiles durante el análisis.
    • La calidad real de los datos puede diferir de la esperada.
    • Algunos requisitos dependen de restricciones legales o técnicas.

    Por ello, los Data Requirements deben considerarse un documento vivo que puede evolucionar durante el proyecto.

    Buenas prácticas

    Para definir correctamente los Data Requirements se recomienda:

    • Comenzar siempre por los objetivos del negocio.
    • Definir claramente la variable objetivo.
    • Identificar únicamente las variables necesarias.
    • Especificar el nivel de granularidad.
    • Establecer criterios mínimos de calidad.
    • Documentar las fuentes de datos.
    • Validar que los datos realmente pueden obtenerse.
    • Revisar los requisitos a medida que evoluciona el proyecto.
    • Mantener un documento compartido entre los equipos de negocio y datos.

    Conclusión

    Los Data Requirements representan una de las fases más importantes dentro de la metodología de la Ciencia de Datos, ya que traducen los objetivos del negocio en necesidades concretas de información. Una definición adecuada de los datos necesarios permite planificar correctamente la recopilación, reducir riesgos, optimizar recursos y sentar las bases para el desarrollo de modelos analíticos fiables.

    Aunque esta actividad no implica todavía el análisis ni el modelado de los datos, su impacto se extiende a todo el ciclo de vida del proyecto. Una especificación clara de las variables, la calidad esperada, la granularidad, la cobertura temporal y las fuentes de información facilita las fases posteriores de Data Collection, Data Understanding y Data Preparation, incrementando significativamente las probabilidades de éxito del proyecto de Ciencia de Datos.

  • Truncated SVD

    La Truncated Singular Value Decomposition (Truncated SVD) es una técnica de reducción de la dimensionalidad basada en la Descomposición en Valores Singulares (Singular Value Decomposition, SVD). Su objetivo consiste en representar un conjunto de datos mediante un número reducido de componentes, conservando la mayor parte de la información original.

    A diferencia de otras técnicas como Principal Component Analysis (PCA), Truncated SVD puede trabajar directamente con matrices dispersas (Sparse Matrices), lo que la convierte en una de las herramientas más utilizadas en Procesamiento del Lenguaje Natural (NLP), recuperación de información, análisis de documentos y minería de texto.

    Gracias a su eficiencia computacional y a su capacidad para reducir grandes espacios de características, Truncated SVD constituye una técnica fundamental en proyectos donde los datos contienen miles o incluso millones de variables.

    En este artículo se estudian sus fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica en Python.

    ¿Qué es Truncated SVD?

    Truncated SVD es una técnica de reducción de la dimensionalidad que aproxima una matriz original mediante un número reducido de componentes obtenidos a partir de su descomposición en valores singulares.

    En lugar de conservar todos los componentes generados por la descomposición SVD, únicamente mantiene los k componentes más importantes, descartando aquellos cuya contribución a la información del conjunto de datos es menor.

    De esta forma se consigue:

    • Reducir el número de dimensiones.
    • Disminuir el coste computacional.
    • Reducir el ruido.
    • Mantener la mayor parte de la información relevante.

    ¿Qué es la descomposición en valores singulares (SVD)?

    Es una técnica matemática que factoriza una matriz en tres matrices.

    SS
    A = U \Sigma V^T
    SS

    donde:

    • \(U\) contiene los vectores singulares izquierdos.
    • \(Σ\) contiene los valores singulares ordenados de mayor a menor.
    • \(Vᵀ\) contiene los vectores singulares derechos.

    Los valores singulares indican cuánta información aporta cada componente. Truncated SVD conserva únicamente los componentes asociados a los mayores valores singulares.

    ¿Cómo funciona?

    El proceso general puede resumirse en los siguientes pasos.

    1. Construir la matriz de datos.
    2. Calcular la Descomposición en Valores Singulares.
    3. Ordenar los componentes según su importancia.
    4. Seleccionar únicamente los primeros k componentes.
    5. Reconstruir una representación reducida del conjunto de datos.

    El resultado es una nueva matriz con muchas menos dimensiones.

    ¿Por qué se llama “Truncated”?

    El término Truncated significa truncado o recortado. En lugar de conservar todos los componentes de la descomposición SVD, únicamente se mantienen los más relevantes.

    Por ejemplo:

    Una matriz puede generar:

    • 5.000 componentes.

    Sin embargo, tras aplicar Truncated SVD podrían conservarse únicamente:

    • 100 componentes.

    Los restantes se eliminan porque contienen poca información o representan ruido.

    Diferencias entre Truncated SVD y PCA

    Aunque ambas técnicas reducen la dimensionalidad, presentan diferencias importantes.

    CaracterísticaTruncated SVDPCA
    Centra los datosNo
    Funciona con matrices dispersasNo (directamente)
    Utilizado en NLPMuy frecuentePoco habitual
    Requiere calcular la matriz de covarianzaNo
    EscalabilidadMuy altaAlta

    Por este motivo, Truncated SVD suele ser la técnica preferida para trabajar con grandes matrices dispersas.

    Ejemplo conceptual

    Supongamos un conjunto de documentos representados mediante TF-IDF. Cada documento contiene:

    • 50.000 términos.

    La matriz posee:

    • Miles de filas.
    • 50.000 columnas.

    Muchas palabras aparecen muy pocas veces. Aplicando Truncated SVD es posible representar cada documento mediante únicamente:

    • 300 componentes.

    Con ello se conserva gran parte de la información semántica mientras se reduce enormemente el tamaño del problema.

    ¿Por qué es importante en Data Science?

    Muchos conjuntos de datos modernos presentan una dimensionalidad extremadamente alta.

    Algunos ejemplos son:

    • TF-IDF.
    • Bag of Words.
    • One-Hot Encoding.
    • Datos genómicos.
    • Matrices documento-término.

    Truncated SVD permite reducir dichas dimensiones sin eliminar completamente la información más importante.

    Relación con Latent Semantic Analysis (LSA)

    Una de las aplicaciones más conocidas de Truncated SVD es Latent Semantic Analysis (LSA).

    En este enfoque:

    1. Se construye una matriz documento-término mediante TF-IDF.
    2. Se aplica Truncated SVD.
    3. Los documentos pasan a representarse mediante un número reducido de factores latentes.

    Estos factores capturan relaciones semánticas entre palabras y documentos que no son evidentes en la representación original.

    LSA fue una de las primeras técnicas ampliamente utilizadas para descubrir temas latentes en colecciones de documentos.

    Beneficios

    Truncated SVD ofrece numerosas ventajas.

    • Reduce la dimensionalidad.
    • Funciona directamente con matrices dispersas.
    • Reduce el ruido.
    • Disminuye el coste computacional.
    • Facilita el entrenamiento de modelos.
    • Mejora la escalabilidad.
    • Muy utilizada en NLP.
    • Conserva gran parte de la información original.

    ¿Cuándo utilizar Truncated SVD?

    Es recomendable utilizar esta técnica cuando:

    • Se trabaja con matrices dispersas.
    • Se utilizan representaciones TF-IDF.
    • Se emplea Bag of Words.
    • Existen miles de características.
    • Se desarrollan motores de búsqueda.
    • Se trabaja con recuperación de información.
    • Se desea acelerar el entrenamiento de modelos.
    • Se pretende reducir la memoria utilizada.

    No suele ser la mejor opción para conjuntos de datos pequeños con pocas variables.

    Ventajas y desventajas

    VentajasDesventajas
    Excelente para matrices dispersasReduce la interpretabilidad de las variables
    Muy eficiente computacionalmenteEs necesario elegir el número adecuado de componentes
    Compatible con TF-IDFPuede perder información
    Reduce el ruidoLos componentes no tienen un significado directo
    Escalable a grandes conjuntos de datosNo siempre mejora el rendimiento del modelo

    Limitaciones

    Aunque es una técnica muy potente, presenta ciertas limitaciones.

    • Los nuevos componentes resultan difíciles de interpretar.
    • La elección del número de componentes influye en los resultados.
    • Puede eliminar información relevante.
    • No siempre mejora la precisión del modelo.
    • Funciona mejor con datos numéricos o representaciones vectoriales.
    • No captura relaciones no lineales entre variables.

    Cuando existen relaciones altamente no lineales pueden resultar más adecuadas técnicas como UMAP o Autoencoders.

    Truncated SVD vs otras técnicas

    TécnicaSupervisadaMatrices dispersasUso principal
    Truncated SVDNoNLP y reducción de dimensionalidad
    PCANoNo (directamente)Variables numéricas continuas
    ICANoNoSeparación de señales
    LDANoClasificación
    t-SNENoVisualización
    UMAPNoVisualización y reducción

    Cada técnica optimiza un objetivo diferente.

    Truncated SVD vs SVD

    Es habitual confundir ambos conceptos.

    Truncated SVDSingular Value Decomposition (SVD)
    Técnica de reducción de dimensionalidadDescomposición matemática completa
    Conserva solo los componentes más importantesCalcula todos los componentes
    Orientada al preprocesamiento de datosBase matemática utilizada en numerosos algoritmos
    Muy utilizada en NLPUtilizada también en sistemas de recomendación, álgebra lineal y procesamiento de señales

    Truncated SVD es una aplicación práctica de la Descomposición en Valores Singulares adaptada a la reducción de dimensionalidad.

    Aplicaciones en Data Science y Machine Learning

    Truncated SVD aparece en numerosos problemas reales.

    Entre los más habituales destacan:

    • Procesamiento del Lenguaje Natural (NLP).
    • Latent Semantic Analysis (LSA).
    • Recuperación de información.
    • Motores de búsqueda.
    • Clasificación de documentos.
    • Minería de texto.
    • Sistemas de recomendación basados en contenido.
    • Análisis de texto.
    • Detección de temas.
    • Compresión de datos.

    Es especialmente útil cuando las matrices contienen un gran número de variables y son muy dispersas.

    Implementación en Python

    Scikit-Learn proporciona una implementación muy eficiente de Truncated SVD.

    Reducir la dimensionalidad

    from sklearn.decomposition import TruncatedSVD
    
    svd = TruncatedSVD(
        n_components=100,
        random_state=42
    )
    
    X_reducido = svd.fit_transform(X)
    

    Aplicación sobre una matriz TF-IDF

    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.decomposition import TruncatedSVD
    
    documentos = [
        "Machine Learning con Python",
        "Introducción al Deep Learning",
        "Minería de datos y NLP"
    ]
    
    vectorizador = TfidfVectorizer()
    
    X = vectorizador.fit_transform(documentos)
    
    svd = TruncatedSVD(
        n_components=2,
        random_state=42
    )
    
    X_reducido = svd.fit_transform(X)
    

    Este flujo de trabajo constituye la base de numerosos sistemas de análisis documental.

    Varianza explicada

    Al igual que PCA, Truncated SVD permite conocer la cantidad de información conservada.

    print(svd.explained_variance_ratio_)

    También puede calcularse la varianza acumulada.

    print(svd.explained_variance_ratio_.sum())

    Esto ayuda a seleccionar un número adecuado de componentes.

    Buenas prácticas

    Para utilizar correctamente Truncated SVD se recomienda:

    • Aplicarlo sobre matrices de alta dimensionalidad.
    • Utilizarlo preferentemente con datos dispersos.
    • Evaluar distintos valores de n_components.
    • Analizar la varianza explicada antes de seleccionar el número de componentes.
    • Comparar el rendimiento frente a PCA cuando se trabaja con datos densos.
    • Validar experimentalmente el impacto sobre el modelo final.
    • Documentar el número de componentes seleccionados y el criterio utilizado.

    Conclusión

    Truncated SVD es una de las técnicas de reducción de la dimensionalidad más importantes cuando se trabaja con matrices dispersas y conjuntos de datos de alta dimensión. Al conservar únicamente los componentes asociados a los mayores valores singulares, permite representar los datos mediante un número mucho menor de variables, reduciendo el coste computacional y eliminando parte del ruido sin perder gran parte de la información relevante.

    Su capacidad para trabajar directamente con representaciones como TF-IDF y Bag of Words la ha convertido en una herramienta fundamental en Procesamiento del Lenguaje Natural, recuperación de información y minería de texto. Aunque comparte su base matemática con la Descomposición en Valores Singulares utilizada en otros ámbitos, como los sistemas de recomendación, su objetivo en este contexto es la compresión eficiente de datos y la reducción de dimensionalidad, lo que la convierte en una técnica esencial dentro del flujo de preparación y transformación de datos en proyectos de Ciencia de Datos y Machine Learning.

  • Técnicas Supervisadas vs No Supervisadas

    La reducción de la dimensionalidad engloba un conjunto de técnicas cuyo objetivo es disminuir el número de variables de un conjunto de datos conservando la mayor cantidad posible de información. Sin embargo, no todas estas técnicas funcionan de la misma manera. Una de las clasificaciones más importantes distingue entre técnicas supervisadas y técnicas no supervisadas.

    La principal diferencia entre ambas radica en el uso de la variable objetivo (target) durante el proceso de transformación. Mientras que las técnicas supervisadas utilizan la información de las clases o etiquetas para generar una representación más discriminativa de los datos, las técnicas no supervisadas ignoran completamente dicha información y se centran únicamente en la estructura interna del conjunto de datos.

    Comprender esta diferencia resulta fundamental para seleccionar la técnica más adecuada en función del problema de Machine Learning que se desea resolver.

    ¿Qué son las técnicas supervisadas y no supervisadas?

    Las técnicas de reducción de la dimensionalidad pueden clasificarse en dos grandes categorías según utilicen o no la variable objetivo durante el proceso de aprendizaje.

    Técnicas supervisadas

    • Las técnicas supervisadas utilizan tanto las variables predictoras como la variable objetivo para construir una nueva representación de los datos.
    • Su propósito principal consiste en encontrar nuevas dimensiones que permitan separar mejor las distintas clases del problema. Este enfoque suele utilizarse en problemas de:
      • Clasificación.
      • Reconocimiento de patrones.
      • Diagnóstico médico.
      • Detección de fraude.
    • Técnicas no supervisadas: Las técnicas no supervisadas únicamente utilizan las variables predictoras. No necesitan conocer las etiquetas de los datos y buscan describir la estructura interna del conjunto de datos conservando la mayor cantidad posible de información. Se utilizan principalmente para:
      • Compresión de datos.
      • Eliminación de redundancia.
      • Visualización.
      • Análisis exploratorio.
      • Preprocesamiento.

    ¿Cómo funcionan?

    Aunque ambas familias reducen el número de dimensiones, sus objetivos son diferentes.

    Funcionamiento de las técnicas supervisadas

    El proceso general consiste en:

    1. Analizar las variables predictoras.
    2. Utilizar las etiquetas del conjunto de datos.
    3. Buscar las combinaciones de variables que mejor separen las clases.
    4. Generar nuevas dimensiones con alto poder discriminativo.

    El resultado favorece el rendimiento de modelos de clasificación.

    Funcionamiento de las técnicas no supervisadas

    En este caso el procedimiento consiste en:

    1. Analizar únicamente las variables predictoras.
    2. Detectar relaciones entre ellas.
    3. Identificar redundancias.
    4. Generar una representación más compacta del conjunto de datos.

    No existe información sobre las clases durante el proceso.

    Diferencias principales

    CaracterísticaTécnicas SupervisadasTécnicas No Supervisadas
    Utilizan variable objetivoNo
    Requieren etiquetasNo
    Objetivo principalSeparar clasesConservar información
    Aplicación habitualClasificaciónExploración y preprocesamiento
    Pueden utilizarse con datos sin etiquetarNo

    Esta es la diferencia fundamental entre ambos enfoques.

    Técnicas supervisadas más utilizadas

    Las técnicas supervisadas son menos numerosas, pero muy eficaces cuando existen etiquetas disponibles.

    TécnicaObjetivo
    Linear Discriminant Analysis (LDA)Maximizar la separación entre clases
    Partial Least Squares (PLS)Maximizar la relación entre variables predictoras y objetivo
    Neighborhood Components Analysis (NCA)Optimizar la representación para clasificación basada en vecinos

    Dentro de esta guía, el principal representante será Linear Discriminant Analysis (LDA).

    Técnicas no supervisadas más utilizadas

    Las técnicas no supervisadas son las más utilizadas en Ciencia de Datos.

    TécnicaObjetivo
    Principal Component Analysis (PCA)Maximizar la varianza explicada
    Independent Component Analysis (ICA)Encontrar componentes estadísticamente independientes
    t-SNEVisualización de datos complejos
    UMAPReducción y visualización preservando la estructura local
    Truncated SVDReducción de dimensionalidad en datos dispersos

    Cada una optimiza un criterio diferente.

    Beneficios

    La utilización del enfoque adecuado aporta numerosas ventajas.

    Entre los principales beneficios destacan:

    • Reduce el número de variables.
    • Disminuye el coste computacional.
    • Facilita la visualización.
    • Reduce el ruido.
    • Disminuye la redundancia.
    • Puede mejorar la capacidad de generalización.
    • Simplifica modelos complejos.

    ¿Cuándo utilizar técnicas supervisadas?

    Es recomendable utilizar técnicas supervisadas cuando:

    • Existe una variable objetivo.
    • El problema es de clasificación.
    • Interesa maximizar la separación entre clases.
    • Se desea mejorar el rendimiento de un clasificador.
    • Se dispone de etiquetas fiables.

    ¿Cuándo utilizar técnicas no supervisadas?

    Las técnicas no supervisadas resultan más adecuadas cuando:

    • No existen etiquetas.
    • Se realiza análisis exploratorio.
    • Se desea visualizar datos.
    • Se pretende reducir el ruido.
    • Se busca eliminar redundancia.
    • Se trabaja con grandes conjuntos de variables.

    Ventajas y desventajas

    Técnicas SupervisadasTécnicas No Supervisadas
    Mejoran la separación entre clasesFuncionan sin etiquetas
    Suelen mejorar la clasificaciónMuy útiles para exploración
    Aprovechan información adicionalAplicables a cualquier conjunto de datos
    Requieren datos etiquetadosNo optimizan la separación entre clases
    No sirven para datos sin etiquetasPueden eliminar información útil para clasificación

    Limitaciones

    Ambos enfoques presentan ciertas limitaciones.

    Técnicas supervisadas

    • Requieren datos etiquetados.
    • Dependen de la calidad de las etiquetas.
    • No pueden utilizarse en problemas no supervisados.
    • Pueden sobreajustarse si existen pocas observaciones.

    Técnicas no supervisadas

    • No consideran la variable objetivo.
    • No garantizan mejorar la clasificación.
    • Algunas técnicas dificultan la interpretación.
    • Determinadas transformaciones pueden perder información relevante.

    Comparación entre las principales técnicas

    TécnicaSupervisadaObjetivo principalUso habitual
    PCANoMaximizar la varianzaPreprocesamiento
    ICANoSeparar componentes independientesProcesamiento de señales
    t-SNENoVisualizaciónAnálisis exploratorio
    UMAPNoVisualización y reducciónExploración y ML
    LDASeparar clasesClasificación
    PLSRelacionar variables con el objetivoRegresión y clasificación

    ¿Cuál elegir?

    La elección depende principalmente del tipo de problema.

    SituaciónTécnica recomendada
    No existen etiquetasPCA, ICA, UMAP, t-SNE
    Problemas de clasificaciónLDA
    Visualización de datosUMAP o t-SNE
    Compresión de datosPCA
    Procesamiento de señalesICA
    Datos dispersosTruncated SVD

    No existe una técnica universalmente superior. La elección debe realizarse en función de los objetivos del análisis.

    Aplicaciones en Data Science y Machine Learning

    Las técnicas supervisadas y no supervisadas aparecen en numerosos ámbitos.

    Entre sus aplicaciones destacan:

    • Clasificación.
    • Regresión.
    • Clustering.
    • Sistemas de recomendación.
    • Procesamiento del Lenguaje Natural (NLP).
    • Visión por computador.
    • Bioinformática.
    • Detección de fraude.
    • Detección de anomalías.
    • Visualización de datos de alta dimensión.
    • Compresión de información.

    Buenas prácticas

    Para seleccionar correctamente una técnica de reducción de dimensionalidad se recomienda:

    • Identificar si el problema dispone de una variable objetivo.
    • Utilizar técnicas supervisadas únicamente cuando existan etiquetas fiables.
    • Aplicar técnicas no supervisadas para exploración o compresión de datos.
    • Normalizar los datos cuando la técnica lo requiera.
    • Comparar varias técnicas antes de seleccionar una.
    • Evaluar el impacto sobre el rendimiento del modelo final.
    • Documentar el motivo por el que se ha elegido una técnica determinada.

    Conclusión

    La clasificación de las técnicas de reducción de la dimensionalidad en supervisadas y no supervisadas constituye uno de los criterios más importantes para seleccionar el método adecuado en un proyecto de Ciencia de Datos. Mientras que las técnicas supervisadas utilizan la información de la variable objetivo para construir representaciones que favorezcan la separación entre clases, las no supervisadas se centran en descubrir la estructura interna de los datos sin necesidad de etiquetas.

    Comprender esta diferencia permite elegir herramientas como LDA cuando el objetivo es mejorar un modelo de clasificación, o recurrir a técnicas como PCA, ICA, t-SNE o UMAP cuando se desea reducir la dimensionalidad, explorar los datos o facilitar su visualización. La elección correcta dependerá siempre del problema, de la disponibilidad de etiquetas y de los objetivos del análisis.

  • La Maldición de la Dimensionalidad (Curse of Dimensionality)

    La Maldición de la Dimensionalidad (Curse of Dimensionality) es uno de los conceptos más importantes en Ciencia de Datos y Machine Learning. Describe el conjunto de problemas que aparecen cuando un conjunto de datos contiene un número muy elevado de variables o dimensiones.

    Aunque pueda parecer que disponer de más información siempre conduce a mejores modelos, en la práctica ocurre lo contrario en muchos casos. A medida que aumenta el número de características, el espacio de representación de los datos crece exponencialmente, las observaciones se vuelven más dispersas y numerosos algoritmos pierden eficacia.

    Este fenómeno afecta especialmente a algoritmos basados en distancias, sistemas de recomendación, técnicas de clustering, búsqueda de vecinos y modelos que trabajan con datos de alta dimensionalidad, como texto, imágenes o embeddings. Comprender este problema es fundamental para decidir cuándo aplicar técnicas de selección de características o reducción de dimensionalidad.

    ¿Qué es la Maldición de la Dimensionalidad?

    La Maldición de la Dimensionalidad es el fenómeno por el cual el aumento del número de variables provoca que el espacio donde se distribuyen los datos crezca mucho más rápido que la cantidad de observaciones disponibles.

    Como consecuencia:

    • Los datos se vuelven cada vez más dispersos.
    • Las distancias entre observaciones dejan de ser representativas.
    • Se necesitan muchos más datos para entrenar correctamente un modelo.
    • El coste computacional aumenta considerablemente.
    • Los modelos pueden sufrir sobreajuste.

    En otras palabras, añadir dimensiones no solo incrementa la complejidad del problema, sino que también dificulta el aprendizaje de patrones útiles.

    ¿Qué es una dimensión?

    En Machine Learning, una dimensión corresponde normalmente a una característica (feature) del conjunto de datos.

    Por ejemplo, un conjunto de datos de clientes podría incluir:

    • Edad.
    • Ingresos.
    • Número de compras.
    • Antigüedad como cliente.
    • Ciudad.
    • Nivel educativo.

    En este caso existen seis dimensiones. Sin embargo, otros problemas presentan miles de variables. Algunos ejemplos son:

    • TF-IDF con miles de términos.
    • Embeddings de 768 o más dimensiones.
    • Imágenes con decenas de miles de píxeles.
    • Datos genómicos con miles de genes.

    ¿Cómo funciona?

    La intuición detrás de este fenómeno puede entenderse observando cómo crece el espacio disponible. Imaginemos que distribuimos 100 puntos.

    • En una dimensión: Los puntos ocupan una línea. La distancia media entre ellos es relativamente pequeña.
    • En dos dimensiones: Ahora ocupan un cuadrado. Los puntos aparecen más separados.
    • En tres dimensiones: Los puntos pasan a distribuirse dentro de un cubo. La separación continúa aumentando.
    • En cien dimensiones: El espacio es inmensamente mayor. Aunque el número de observaciones siga siendo el mismo, la mayor parte del espacio permanece vacío. Los puntos quedan extremadamente dispersos.

    ¿Por qué aparece este problema?

    Cada nueva dimensión multiplica el volumen del espacio de búsqueda. Mientras que el número de observaciones suele crecer de forma lineal, el espacio crece exponencialmente.

    Como consecuencia:

    • Disminuye la densidad de datos.
    • Los vecinos están cada vez más alejados.
    • Los algoritmos necesitan muchas más observaciones para aprender correctamente.

    Este comportamiento es el origen de la maldición de la dimensionalidad.

    Ejemplo conceptual

    Supongamos un conjunto de datos con dos variables. Cada observación puede visualizarse fácilmente en un plano. Ahora imaginemos que añadimos:

    • 100 variables adicionales.

    Aunque sigamos teniendo el mismo número de registros, ahora cada observación ocupa una posición en un espacio de 102 dimensiones. Encontrar dos observaciones realmente próximas se vuelve mucho más difícil.

    Principales consecuencias

    La maldición de la dimensionalidad produce numerosos efectos negativos.

    • Las distancias dejan de ser útiles: en espacios de alta dimensión ocurre un fenómeno curioso. La diferencia entre el vecino más cercano y el más lejano disminuye. En consecuencia: todos los puntos parecen encontrarse a una distancia similar. Esto reduce la eficacia de métricas como:
      • Distancia Euclidiana.
      • Distancia Manhattan.
      • Distancia de Minkowski.
    • Mayor necesidad de datos: Cuantas más dimensiones existan, más observaciones serán necesarias para cubrir adecuadamente el espacio. En muchos problemas resulta imposible obtener suficientes datos.
    • Mayor coste computacional: Incrementar el número de variables implica:
      • Más memoria.
      • Más operaciones matemáticas.
      • Más tiempo de entrenamiento.
      • Mayor tiempo de predicción.
    • Mayor riesgo de sobreajuste: Con muchas variables el modelo puede aprender ruido en lugar de patrones reales. Esto provoca:
      • Peor capacidad de generalización.
      • Disminución del rendimiento sobre nuevos datos.

    Algoritmos más afectados

    No todos los algoritmos sufren este problema con la misma intensidad.

    Muy afectadosMenos afectados
    K-Nearest Neighbors (KNN)Árboles de Decisión
    K-MeansRandom Forest
    DBSCANXGBoost
    Sistemas de recomendación basados en vecinosLightGBM
    Clustering jerárquicoCatBoost
    Búsqueda por similitudRedes Neuronales con representación adecuada

    Los algoritmos basados en distancias son los más perjudicados.

    Beneficios de comprender la Maldición de la Dimensionalidad

    Aunque la maldición de la dimensionalidad no es una técnica, comprender este fenómeno aporta numerosas ventajas.

    • Permite seleccionar mejores algoritmos.
    • Ayuda a decidir cuándo reducir dimensiones.
    • Facilita la selección de características.
    • Reduce el sobreajuste.
    • Mejora la eficiencia computacional.
    • Favorece modelos más robustos.
    • Permite interpretar mejor los resultados.

    ¿Cuándo debemos preocuparnos?

    Es recomendable analizar este problema cuando:

    • Existen cientos o miles de variables.
    • Se utilizan algoritmos basados en distancias.
    • Los datos son muy dispersos.
    • Se trabaja con texto o imágenes.
    • Se utilizan embeddings.
    • El entrenamiento resulta demasiado lento.
    • El modelo presenta sobreajuste.

    En conjuntos pequeños con pocas variables normalmente su impacto es reducido.

    Ventajas y desventajas

    Aunque la maldición de la dimensionalidad es un problema, comprenderla ofrece ventajas importantes.

    Ventajas de comprenderlaDesventajas del problema
    Permite diseñar mejores modelosMayor coste computacional
    Ayuda a seleccionar algoritmos adecuadosSe requieren más datos
    Facilita la reducción de dimensionalidadLas distancias pierden significado
    Reduce el riesgo de sobreajusteMayor complejidad del modelo
    Mejora la interpretación de resultadosDisminuye el rendimiento de algunos algoritmos

    Limitaciones

    No todos los problemas de alta dimensionalidad presentan el mismo comportamiento. Entre sus principales limitaciones destacan:

    • Depende del algoritmo utilizado.
    • Algunas técnicas modernas reducen considerablemente su impacto.
    • No existe un número fijo de dimensiones a partir del cual aparezca.
    • Puede mitigarse mediante preprocesamiento adecuado.
    • Su gravedad depende de la cantidad de observaciones disponibles.

    Por ello, debe analizarse siempre en el contexto del problema concreto.

    Estrategias para combatir la Maldición de la Dimensionalidad

    Existen numerosas técnicas para reducir su impacto. Entre las más utilizadas destacan:

    • Selección de características.
    • Eliminación de variables redundantes.
    • Eliminación de variables con baja varianza.
    • Ingeniería de características.
    • Principal Component Analysis (PCA).
    • Linear Discriminant Analysis (LDA).
    • Independent Component Analysis (ICA).
    • UMAP.
    • t-SNE (principalmente para visualización).
    • Autoencoders.
    • Obtención de un mayor número de observaciones.

    La elección dependerá del tipo de datos y del objetivo del proyecto.

    Comparación entre alta y baja dimensionalidad

    CaracterísticaBaja dimensionalidadAlta dimensionalidad
    Número de variablesBajoMuy elevado
    Densidad de datosAltaBaja
    InterpretabilidadAltaMenor
    Coste computacionalReducidoElevado
    Riesgo de sobreajusteBajoAlto
    Eficacia de algoritmos basados en distanciaAltaMenor

    Aplicaciones en Data Science y Machine Learning

    La maldición de la dimensionalidad aparece en numerosos problemas reales.

    Entre ellos destacan:

    • Sistemas de recomendación.
    • Procesamiento del Lenguaje Natural (NLP).
    • Visión por computador.
    • Bioinformática.
    • Detección de fraude.
    • Clustering.
    • KNN.
    • Recuperación de información.
    • Búsqueda semántica.
    • Análisis de datos genómicos.
    • Detección de anomalías.

    Es un concepto transversal presente en prácticamente todas las áreas del Machine Learning moderno.

    Buenas prácticas

    Para minimizar el impacto de la maldición de la dimensionalidad se recomienda:

    • Eliminar variables irrelevantes.
    • Reducir la redundancia entre características.
    • Normalizar o estandarizar los datos cuando sea necesario.
    • Aplicar técnicas de reducción de dimensionalidad en problemas complejos.
    • Utilizar algoritmos adecuados para espacios de alta dimensión.
    • Incrementar el número de observaciones siempre que sea posible.
    • Validar experimentalmente el efecto de la reducción de dimensionalidad sobre el rendimiento del modelo.

    Conclusión

    La maldición de la dimensionalidad es uno de los desafíos más importantes en Ciencia de Datos y Machine Learning. A medida que aumenta el número de variables, los datos se vuelven más dispersos, las distancias pierden capacidad discriminativa y muchos algoritmos reducen su eficacia. Este fenómeno afecta especialmente a técnicas basadas en distancias, sistemas de recomendación, clustering y análisis de datos de alta dimensión.

    Comprender este problema resulta esencial para seleccionar adecuadamente los algoritmos, aplicar técnicas de selección de características o reducción de dimensionalidad y construir modelos más eficientes y robustos. Herramientas como PCA, LDA, ICA, UMAP o la selección de características permiten mitigar sus efectos y constituyen una parte fundamental del flujo de trabajo en proyectos modernos de Ciencia de Datos.

  • Introducción a la Reducción de la Dimensionalidad

    La Reducción de la Dimensionalidad (Dimensionality Reduction) es una de las técnicas fundamentales de la transformación de datos y del preprocesamiento en Ciencia de Datos y Machine Learning. Su objetivo es disminuir el número de variables o características de un conjunto de datos conservando la mayor cantidad posible de información relevante.

    A medida que aumenta el número de variables, los conjuntos de datos se vuelven más complejos, incrementan los costes computacionales y aparecen problemas como la maldición de la dimensionalidad, que puede afectar negativamente al rendimiento de muchos algoritmos de aprendizaje automático. La reducción de dimensionalidad permite abordar estos problemas simplificando la representación de los datos sin perder, en la medida de lo posible, la información esencial.

    Existen numerosas técnicas de reducción de dimensionalidad, cada una diseñada para distintos objetivos, como reducir el ruido, visualizar datos complejos, acelerar el entrenamiento de modelos o mejorar la capacidad de generalización. En este artículo se presenta una visión conceptual de esta familia de técnicas. En artículos posteriores se estudiarán métodos como PCA, LDA, ICA, t-SNE y UMAP.

    ¿Qué es la reducción de la dimensionalidad?

    La reducción de la dimensionalidad es el proceso mediante el cual un conjunto de datos con un gran número de variables se transforma en otro con menos características, intentando conservar la mayor parte de la información original.

    Las nuevas variables pueden obtenerse de dos formas principales:

    • Eliminando características poco relevantes.
    • Combinando varias variables originales para crear un conjunto reducido de nuevas variables.

    El resultado es un conjunto de datos más compacto y manejable.

    ¿Qué se entiende por dimensionalidad?

    En Machine Learning, una dimensión corresponde normalmente a una característica (feature) del conjunto de datos. Por ejemplo, un conjunto de datos sobre viviendas puede contener las siguientes variables:

    • Superficie.
    • Número de habitaciones.
    • Número de baños.
    • Antigüedad.
    • Código postal.
    • Distancia al centro.
    • Consumo energético.
    • Precio.

    En este caso, el conjunto posee ocho dimensiones.

    Sin embargo, en problemas como el procesamiento del lenguaje natural o la visión por computador es habitual trabajar con cientos o incluso miles de dimensiones.

    ¿Por qué reducir la dimensionalidad?

    Trabajar con un número elevado de variables puede generar diversos problemas.

    Entre los más importantes se encuentran:

    • Incremento del coste computacional.
    • Mayor consumo de memoria.
    • Aparición de ruido.
    • Variables redundantes.
    • Sobreajuste (Overfitting).
    • Dificultad para visualizar los datos.
    • Aparición de la maldición de la dimensionalidad.

    Reducir el número de dimensiones ayuda a construir modelos más eficientes y, en muchos casos, más precisos.

    ¿Cómo funciona?

    Aunque existen diferentes técnicas, el proceso general suele seguir los mismos pasos.

    1. Analizar el conjunto de datos.
    2. Identificar relaciones entre las variables.
    3. Detectar redundancias o correlaciones.
    4. Transformar o seleccionar las características más representativas.
    5. Obtener un nuevo conjunto de datos con menos dimensiones.

    Cada algoritmo utiliza una estrategia distinta para realizar esta transformación.

    Principales enfoques

    Las técnicas de reducción de dimensionalidad pueden clasificarse en dos grandes grupos.

    Selección de características

    Consiste en conservar únicamente las variables más relevantes del conjunto original. No crea nuevas variables. Ejemplos:

    • Eliminación por baja varianza.
    • Selección mediante correlación.
    • Métodos basados en árboles.
    • Recursive Feature Elimination (RFE).

    Extracción de características

    Genera nuevas variables a partir de combinaciones de las originales. Las nuevas dimensiones suelen contener la mayor parte de la información presente en el conjunto inicial.

    Ejemplos:

    • Principal Component Analysis (PCA).
    • Linear Discriminant Analysis (LDA).
    • Independent Component Analysis (ICA).
    • t-SNE.
    • UMAP.

    Este artículo se centra en este segundo enfoque.

    Técnicas más utilizadas

    Las técnicas de reducción de dimensionalidad más habituales son:

    TécnicaSupervisadaObjetivo principal
    Principal Component Analysis (PCA)NoMaximizar la varianza conservada
    Linear Discriminant Analysis (LDA)Maximizar la separación entre clases
    Independent Component Analysis (ICA)NoEncontrar componentes independientes
    t-SNENoVisualización de datos complejos
    UMAPNoVisualización y reducción eficiente

    Ejemplo conceptual

    Supongamos un conjunto de datos con 100 variables relacionadas con clientes. Muchas de ellas contienen información muy similar.

    Por ejemplo:

    • Edad.
    • Año de nacimiento.
    • Década de nacimiento.

    O bien:

    • Salario mensual.
    • Salario anual.
    • Ingresos totales.

    Estas variables aportan información redundante.

    La reducción de dimensionalidad permite representar toda esa información mediante un número mucho menor de variables.

    Beneficios

    La reducción de dimensionalidad aporta numerosas ventajas.

    • Reduce el tiempo de entrenamiento.
    • Disminuye el consumo de memoria.
    • Elimina información redundante.
    • Reduce el ruido.
    • Facilita la visualización de datos.
    • Puede mejorar la capacidad de generalización.
    • Reduce el riesgo de sobreajuste.
    • Facilita el análisis exploratorio.

    ¿Cuándo utilizar la Reducción de la Dimensionalidad?

    Es recomendable utilizarla cuando:

    • Existen muchas variables.
    • Las características presentan alta correlación.
    • Se detecta redundancia.
    • El entrenamiento resulta demasiado lento.
    • Se desea visualizar datos de alta dimensión.
    • Aparece sobreajuste.
    • Se trabaja con texto, imágenes o embeddings.
    • Se pretende simplificar el modelo.

    No siempre es necesaria en conjuntos de datos pequeños o con pocas variables.

    Ventajas y desventajas

    VentajasDesventajas
    Reduce el número de variablesPuede perderse información
    Disminuye el coste computacionalAlgunas técnicas reducen la interpretabilidad
    Mejora la visualizaciónRequiere seleccionar la técnica adecuada
    Reduce el ruidoPuede dificultar la explicación del modelo
    Puede mejorar la generalizaciónAlgunas técnicas son costosas computacionalmente

    Limitaciones

    Aunque resulta muy útil, presenta ciertas limitaciones.

    • Puede eliminar información relevante.
    • Algunas transformaciones dificultan la interpretación de las variables.
    • No todas las técnicas funcionan igual de bien para cualquier problema.
    • Algunas requieren una gran capacidad computacional.
    • Determinadas técnicas solo son adecuadas para visualización.
    • La elección incorrecta puede reducir el rendimiento del modelo.

    Por ello, es recomendable evaluar el impacto de la reducción de dimensionalidad antes de incorporarla al flujo de trabajo.

    Reducción de Dimensionalidad vs Selección de Características

    Aunque ambos enfoques persiguen simplificar el conjunto de datos, existen diferencias importantes.

    CaracterísticaReducción de DimensionalidadSelección de Características
    Crea nuevas variablesSí (habitualmente)No
    Elimina variables originalesPuede hacerlo
    Conserva interpretabilidadMenorMayor
    Reduce redundanciaParcialmente
    ObjetivoComprimir la informaciónElegir las variables más relevantes

    Ambas técnicas son complementarias y con frecuencia se utilizan conjuntamente.

    Relación con la maldición de la dimensionalidad

    Uno de los principales motivos para aplicar técnicas de reducción de dimensionalidad es combatir la maldición de la dimensionalidad.

    Cuando el número de variables aumenta excesivamente:

    • Los datos se vuelven más dispersos.
    • Las distancias pierden capacidad discriminativa.
    • Muchos algoritmos reducen su rendimiento.
    • El entrenamiento se vuelve más costoso.

    La reducción de dimensionalidad ayuda a representar los datos en un espacio más compacto y manejable.

    Aplicaciones en Data Science y Machine Learning

    La reducción de dimensionalidad tiene aplicaciones en numerosos ámbitos.

    Entre las más habituales destacan:

    • Clasificación.
    • Regresión.
    • Clustering.
    • Sistemas de recomendación.
    • Procesamiento del Lenguaje Natural (NLP).
    • Visión por computador.
    • Bioinformática.
    • Detección de anomalías.
    • Análisis exploratorio de datos.
    • Visualización de datos de alta dimensión.

    Es una técnica transversal presente en gran parte de los proyectos de Ciencia de Datos.

    Buenas prácticas

    Para aplicar correctamente la reducción de dimensionalidad se recomienda:

    • Analizar previamente la correlación entre variables.
    • Normalizar o estandarizar los datos cuando la técnica lo requiera.
    • Seleccionar el número adecuado de componentes.
    • Evaluar el impacto sobre el rendimiento del modelo.
    • Comparar distintas técnicas antes de elegir una.
    • Mantener un equilibrio entre simplificación e interpretabilidad.
    • Documentar las transformaciones realizadas durante el preprocesamiento.

    Conclusión

    La reducción de dimensionalidad es una de las técnicas más importantes dentro de la transformación de datos y constituye una herramienta fundamental para simplificar conjuntos de datos complejos sin perder la mayor parte de su información. Su aplicación permite reducir el coste computacional, eliminar redundancias, facilitar la visualización y mejorar el rendimiento de numerosos algoritmos de Machine Learning.

    No existe una técnica universalmente superior. Métodos como PCA, LDA, ICA, t-SNE y UMAP responden a necesidades diferentes y deben seleccionarse en función del tipo de datos y de los objetivos del proyecto. Comprender los fundamentos de la reducción de dimensionalidad es el primer paso para utilizar estas herramientas de forma eficaz y aprovechar todo su potencial en proyectos de Ciencia de Datos.

  • Distancia Euclidiana

    La Distancia Euclidiana (Euclidean Distance) es una de las métricas de distancia más utilizadas en Ciencia de Datos, Machine Learning y Sistemas de Recomendación. Su objetivo es medir la distancia en línea recta entre dos puntos dentro de un espacio multidimensional, proporcionando una medida intuitiva de cuánto difieren dos observaciones.

    Esta métrica constituye la base de numerosos algoritmos de aprendizaje automático, como K-Nearest Neighbors (KNN), algunos algoritmos de clustering, sistemas de recomendación basados en vecinos y técnicas de detección de anomalías. Su popularidad se debe a que ofrece una representación geométrica sencilla de la distancia entre dos vectores de características.

    Aunque es una de las métricas más conocidas, su utilización requiere prestar especial atención a la escala de las variables y a la naturaleza de los datos. En este artículo se analizan sus fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica en Python.

    ¿Qué es la Distancia Euclidiana?

    La Distancia Euclidiana es una medida matemática que calcula la distancia en línea recta entre dos puntos en un espacio de una o varias dimensiones. Se basa en el Teorema de Pitágoras y representa la longitud del segmento que une dos puntos.

    Su fórmula general es:

    $$d=\sqrt{\sum_{i=1}^{n}(A_i-B_i)^2}$$

    donde:

    • \(A_i\)representa el valor de la característica (i) del primer vector.
    • \(B_i\) representa el valor correspondiente del segundo vector.
    • \(n\) es el número total de dimensiones.

    El resultado siempre es un número mayor o igual que cero. Cuanto menor sea la distancia, mayor será la similitud entre ambos objetos.

    ¿Cómo funciona?

    La Distancia Euclidiana calcula la diferencia entre cada característica de dos vectores, eleva dichas diferencias al cuadrado, suma todos los resultados y finalmente obtiene la raíz cuadrada.

    El procedimiento general consiste en:

    1. Comparar cada característica de ambos vectores.
    2. Calcular la diferencia entre los valores.
    3. Elevar cada diferencia al cuadrado.
    4. Sumar todos los cuadrados obtenidos.
    5. Calcular la raíz cuadrada del resultado.

    Este procedimiento produce la distancia geométrica entre ambas observaciones.

    Interpretación de los valores

    La Distancia Euclidiana toma valores comprendidos entre:

    $$0 \le D < \infty$$

    Su interpretación es sencilla.

    ValorInterpretación
    0Ambos vectores son idénticos
    Valor pequeñoAlta similitud
    Valor elevadoBaja similitud

    Al tratarse de una métrica de distancia, valores menores indican una mayor semejanza.

    Ejemplo conceptual

    Supongamos dos usuarios representados mediante dos características.

    Usuario A:

    • Compras: 8
    • Visitas: 12

    Usuario B:

    • Compras: 5
    • Visitas: 15

    La distancia sería:

    $$
    \sqrt{(8-5)^2+(12-15)^2}
    \approx4.24
    $$

    La distancia entre ambos usuarios es aproximadamente 4,24.

    Ejemplo gráfico

    Consideremos dos puntos en un plano.

    A = (2,3)

    B = (6,7)

    La distancia euclidiana es:

    $$
    \sqrt{(6-2)^2+(7-3)^2}
    \approx5.66
    $$

    Esta representa la línea recta más corta entre ambos puntos.

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

    Muchos sistemas de recomendación representan usuarios o productos mediante vectores numéricos. La Distancia Euclidiana permite cuantificar cuánto difieren dichos vectores.

    Se utiliza principalmente cuando:

    • Las variables son numéricas.
    • La magnitud de las diferencias es importante.
    • Se emplean algoritmos basados en vecinos.
    • Los datos han sido previamente normalizados.

    En estos casos, los elementos más cercanos suelen considerarse los más similares.

    Beneficios

    La Distancia Euclidiana ofrece numerosas ventajas.

    • Muy fácil de interpretar.
    • Basada en una representación geométrica intuitiva.
    • Ampliamente utilizada en Machine Learning.
    • Compatible con numerosos algoritmos.
    • Fácil de implementar.
    • Adecuada para variables numéricas continuas.
    • Muy eficiente en espacios de baja dimensión.

    ¿Cuándo utilizar la Distancia Euclidiana?

    Es recomendable utilizarla cuando:

    • Se trabaja con variables numéricas continuas.
    • Las variables han sido normalizadas.
    • Se implementan algoritmos KNN.
    • Se desarrollan sistemas de recomendación basados en vecinos.
    • Se realizan tareas de clustering.
    • Se comparan vectores de características numéricas.
    • La magnitud de las diferencias resulta relevante.

    No suele ser la mejor opción para datos categóricos o texto sin transformación previa.

    Ventajas y desventajas

    VentajasDesventajas
    Fácil interpretaciónMuy sensible a la escala de las variables
    Muy utilizada en Machine LearningSensible a valores atípicos
    Representación geométrica intuitivaPierde eficacia en alta dimensionalidad
    Compatible con numerosos algoritmosRequiere variables numéricas
    Implementación sencillaNo considera correlaciones entre variables

    Limitaciones

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

    • Es muy sensible a la escala de las variables.
    • Requiere normalización cuando las variables tienen unidades distintas.
    • Puede verse afectada por valores extremos.
    • No captura relaciones lineales entre variables.
    • En espacios de alta dimensionalidad pierde capacidad discriminativa debido a la denominada maldición de la dimensionalidad (Curse of Dimensionality).
    • No resulta adecuada para variables categóricas sin transformación previa.

    Por ello, suele combinarse con procesos de escalado, selección de variables o reducción de dimensionalidad.

    Distancia Euclidiana vs otras medidas

    MedidaQué comparaSensible a la magnitudTipo de datos recomendado
    Distancia EuclidianaDistancia geométricaVariables numéricas
    Distancia ManhattanDiferencias absolutasVariables numéricas
    Similitud del CosenoDirección del vectorNoTexto, TF-IDF, Embeddings
    Similitud de PearsonRelación linealNoValoraciones
    Índice de JaccardElementos compartidosNoDatos binarios

    La Distancia Euclidiana destaca cuando interesa medir la distancia geométrica real entre observaciones.

    Distancia Euclidiana vs Distancia Manhattan

    Ambas son métricas ampliamente utilizadas para comparar observaciones numéricas.

    CaracterísticaDistancia EuclidianaDistancia Manhattan
    Tipo de normaL2L1
    CálculoRaíz cuadrada de la suma de cuadradosSuma de diferencias absolutas
    TrayectoriaLínea rectaRecorrido por cuadrícula
    Sensibilidad a valores extremosMayorMenor
    Coste computacionalMayorMenor

    La elección depende del problema y del comportamiento esperado de los datos.

    Aplicaciones en Data Science y Machine Learning

    La Distancia Euclidiana aparece en numerosos ámbitos de la Ciencia de Datos. Entre sus aplicaciones más habituales destacan:

    • Sistemas de recomendación.
    • K-Nearest Neighbors (KNN).
    • Clustering.
    • Detección de anomalías.
    • Reconocimiento de patrones.
    • Visión por computador.
    • Minería de datos.
    • Bioinformática.
    • Sistemas de búsqueda.
    • Segmentación de clientes.

    Es una de las métricas fundamentales para comparar observaciones numéricas.

    Implementación en Python

    Calcular la Distancia Euclidiana con SciPy

    from scipy.spatial.distance import euclidean
    
    A = [2, 3]
    B = [6, 7]
    
    distancia = euclidean(A, B)
    
    print(distancia)
    

    Resultado:

    5.656854249492381

    Utilizando Scikit-Learn

    from sklearn.metrics.pairwise import euclidean_distances
    import numpy as np
    
    A = np.array([[2, 3]])
    B = np.array([[6, 7]])
    
    distancia = euclidean_distances(A, B)
    
    print(distancia)

    Resultado:

    [[5.65685425]]

    Calcular una matriz de distancias

    from sklearn.metrics.pairwise import euclidean_distances
    import numpy as np
    
    X = np.array([
        [2, 3],
        [6, 7],
        [5, 2]
    ])
    
    matriz = euclidean_distances(X)
    
    print(matriz)
    

    Resultado aproximado:

    [[0.00 5.66 3.16]
     [5.66 0.00 5.10]
     [3.16 5.10 0.00]]

    La matriz contiene la distancia entre todos los pares de observaciones.

    Utilizar la Distancia Euclidiana en KNN

    from sklearn.neighbors import KNeighborsClassifier
    
    modelo = KNeighborsClassifier(
        n_neighbors=5,
        metric="euclidean"
    )
    
    modelo.fit(X_train, y_train)
    

    La Distancia Euclidiana es la métrica utilizada por defecto en muchas implementaciones de KNN.

    Complejidad computacional

    Para dos vectores con n características:

    • El cálculo de la Distancia Euclidiana tiene una complejidad temporal aproximada de O(n).

    Cuando se calculan las distancias entre todas las observaciones de una matriz con m registros:

    • La complejidad aproximada es O(m² · n).

    En conjuntos de datos de gran tamaño suele recurrirse a estructuras como KD-Tree, Ball Tree o algoritmos de búsqueda aproximada de vecinos para reducir el tiempo de cálculo.

    Buenas prácticas

    Para utilizar correctamente la Distancia Euclidiana se recomienda:

    • Normalizar o estandarizar las variables antes del cálculo.
    • Utilizar únicamente variables numéricas.
    • Analizar la presencia de valores atípicos.
    • Comparar su rendimiento frente a otras métricas.
    • Reducir la dimensionalidad cuando existan muchas variables.
    • Validar experimentalmente la elección de la métrica.
    • Documentar el preprocesamiento realizado antes del cálculo.

    Conclusión

    La Distancia Euclidiana es una de las métricas más utilizadas en Ciencia de Datos y Machine Learning debido a su sencillez, interpretación geométrica y amplia compatibilidad con algoritmos como KNN, clustering y sistemas de recomendación basados en vecinos. Al medir la distancia en línea recta entre dos observaciones, proporciona una forma intuitiva de cuantificar la similitud entre vectores numéricos.

    Sin embargo, su eficacia depende en gran medida de la calidad del preprocesamiento de los datos. La normalización de las variables, el tratamiento de valores atípicos y la reducción de dimensionalidad son aspectos fundamentales para obtener resultados fiables. Cuando se utiliza en el contexto adecuado, la Distancia Euclidiana continúa siendo una herramienta esencial para resolver problemas de clasificación, agrupamiento, recomendación y análisis de datos en múltiples dominios.

  • Distancia Manhattan

    La Distancia Manhattan (Manhattan Distance), también conocida como Distancia Taxicab, Distancia City Block o Distancia L1, es una de las métricas de distancia más utilizadas en Ciencia de Datos y Machine Learning para medir la diferencia entre dos puntos en un espacio multidimensional.

    A diferencia de la Distancia Euclidiana, que calcula la distancia en línea recta entre dos puntos, la Distancia Manhattan mide la distancia recorriendo únicamente desplazamientos horizontales y verticales, de forma similar al recorrido que realizaría un taxi por las calles organizadas en cuadrícula de la isla de Manhattan, de donde proviene su nombre.

    Esta métrica resulta especialmente útil cuando se trabaja con variables numéricas, espacios de alta dimensionalidad o algoritmos basados en vecinos, como K-Nearest Neighbors (KNN), además de tener aplicaciones en sistemas de recomendación, clustering, detección de anomalías y optimización.

    En este artículo se estudian sus fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica en Python.

    ¿Qué es la Distancia Manhattan?

    La Distancia Manhattan es una medida matemática que calcula la distancia entre dos vectores sumando las diferencias absolutas de cada una de sus dimensiones.

    Su fórmula es:

    $$
    D(A,B)=\sum_{i=1}^{n}|A_i-B_i|
    $$

    donde:

    • \(A_i\) representa el valor de la característica (i) del primer vector.
    • \(B_i\) representa el valor correspondiente del segundo vector.
    • \(n\) es el número total de características.

    El resultado siempre es un valor igual o mayor que cero. Cuanto menor sea la distancia, mayor será la similitud entre ambos objetos.

    ¿Cómo funciona?

    La Distancia Manhattan calcula la diferencia absoluta en cada dimensión y posteriormente suma todas ellas.

    El procedimiento general consiste en:

    1. Comparar cada característica de ambos vectores.
    2. Calcular la diferencia absoluta en cada dimensión.
    3. Sumar todas las diferencias.
    4. Obtener una distancia total.

    A diferencia de otras métricas, no utiliza cuadrados ni raíces cuadradas, lo que simplifica considerablemente su cálculo.

    Interpretación de los valores

    La Distancia Manhattan toma valores comprendidos entre:

    $$
    0 \le D < \infty
    $$

    Su interpretación es sencilla.

    ValorInterpretación
    0Los vectores son idénticos
    Valor pequeñoAlta similitud
    Valor elevadoBaja similitud

    Al tratarse de una distancia, un valor menor indica una mayor semejanza.

    Ejemplo conceptual

    Supongamos dos usuarios representados mediante dos características.

    Usuario A:

    • Compras: 8
    • Visitas: 12

    Usuario B:

    • Compras: 5
    • Visitas: 15

    La distancia sería:

    $$D = |8-5|+|12-15| = 6$$

    La distancia Manhattan entre ambos usuarios es igual a 6.

    Ejemplo gráfico

    Supongamos dos puntos.

    A = (2,3)

    B = (6,7)

    La distancia Manhattan será:

    $$D =|6-2|+|7-3| = 8$$

    Mientras que la distancia euclidiana recorrería una línea recta, la Distancia Manhattan representa el recorrido siguiendo únicamente desplazamientos horizontales y verticales.

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

    En algunos sistemas de recomendación los usuarios o productos se representan mediante vectores de características numéricas. La Distancia Manhattan permite medir cuánto difieren dichos vectores considerando cada característica por separado.

    Resulta especialmente útil cuando:

    • Las diferencias individuales entre variables tienen significado.
    • Se trabaja con datos tabulares.
    • Las variables representan cantidades acumuladas.
    • Se utilizan algoritmos KNN para buscar vecinos similares.

    En estos escenarios, una menor distancia implica una mayor similitud entre usuarios o elementos.

    ¿Cuándo utilizar la Distancia Manhattan?

    Es recomendable utilizarla cuando:

    • Se trabaja con variables numéricas.
    • Se utilizan algoritmos KNN.
    • Existen valores atípicos moderados.
    • Se desea reducir el efecto de grandes diferencias individuales.
    • Se analizan datos tabulares.
    • Las variables tienen la misma escala o han sido normalizadas.
    • Se desarrollan sistemas de recomendación basados en vecinos.

    No suele ser la mejor opción para comparar texto o documentos.

    Ventajas y desventajas

    VentajasDesventajas
    Fácil implementaciónDepende de la escala de las variables
    Menor sensibilidad a valores extremos que EuclidianaRequiere normalización cuando las variables tienen unidades diferentes
    Muy utilizada en KNNNo captura relaciones lineales
    Adecuada para espacios de alta dimensiónPuede perder capacidad discriminativa con muchas variables irrelevantes
    Bajo coste computacionalNo considera correlaciones entre variables

    Limitaciones

    Aunque es una métrica muy utilizada, presenta algunas limitaciones.

    • Es sensible a la escala de las variables.
    • No tiene en cuenta la correlación entre características.
    • No resulta adecuada para texto o datos categóricos sin transformación previa.
    • En espacios muy dispersos puede perder capacidad discriminativa.
    • No captura relaciones complejas entre variables.

    Por ello, suele combinarse con procesos de normalización o selección de características.

    Distancia Manhattan vs otras medidas

    MedidaQué comparaSensible a la magnitudTipo de datos recomendado
    Distancia ManhattanDiferencias absolutasVariables numéricas
    Distancia EuclidianaDistancia geométricaVariables numéricas
    Similitud del CosenoDirección del vectorNoTexto, TF-IDF, Embeddings
    Similitud de PearsonRelación linealNoValoraciones
    Índice de JaccardElementos compartidosNoDatos binarios

    La Distancia Manhattan suele preferirse cuando interesa medir diferencias individuales entre características y se desea reducir el impacto de grandes desviaciones.

    Manhattan vs Distancia Euclidiana

    Aunque ambas son métricas de distancia, presentan diferencias importantes.

    CaracterísticaDistancia ManhattanDistancia Euclidiana
    Tipo de normaL1L2
    CálculoSuma de diferencias absolutasRaíz cuadrada de la suma de cuadrados
    Sensibilidad a valores extremosMenorMayor
    Interpretación geométricaRecorrido por cuadrículaLínea recta
    Complejidad computacionalMenorMayor

    La elección entre ambas depende del problema y de la naturaleza de los datos.

    Aplicaciones en Data Science y Machine Learning

    La Distancia Manhattan aparece en numerosos ámbitos de la Ciencia de Datos.

    Entre sus aplicaciones más habituales destacan:

    • Sistemas de recomendación.
    • K-Nearest Neighbors (KNN).
    • Clustering.
    • Detección de anomalías.
    • Optimización matemática.
    • Visión por computador.
    • Reconocimiento de patrones.
    • Minería de datos.
    • Bioinformática.
    • Sistemas de búsqueda.

    Es especialmente útil cuando los datos pueden representarse mediante variables numéricas independientes.

    Implementación en Python

    Calcular la Distancia Manhattan con SciPy

    from scipy.spatial.distance import cityblock
    
    A = [2, 3]
    B = [6, 7]
    
    distancia = cityblock(A, B)
    
    print(distancia)
    

    Resultado:

    8

    Utilizando Scikit-Learn

    from sklearn.metrics.pairwise import manhattan_distances
    import numpy as np
    
    A = np.array([[2, 3]])
    B = np.array([[6, 7]])
    
    distancia = manhattan_distances(A, B)
    
    print(distancia)
    

    Resultado:

    [[8.]]

    Calcular una matriz de distancias

    from sklearn.metrics.pairwise import manhattan_distances
    import numpy as np
    
    X = np.array([
        [2, 3],
        [6, 7],
        [5, 2]
    ])
    
    matriz = manhattan_distances(X)
    
    print(matriz)
    

    Resultado aproximado:

    [[0. 8. 4.]
     [8. 0. 6.]
     [4. 6. 0.]]

    La matriz contiene la distancia entre todos los pares de observaciones.

    Utilizar la Distancia Manhattan en KNN

    from sklearn.neighbors import KNeighborsClassifier
    
    modelo = KNeighborsClassifier(
        n_neighbors=5,
        metric="manhattan"
    )
    
    modelo.fit(X_train, y_train)
    

    Este enfoque resulta habitual cuando se desea utilizar la norma L1 en lugar de la distancia euclidiana.

    Complejidad computacional

    Para dos vectores con n características:

    • El cálculo de la Distancia Manhattan tiene una complejidad temporal de O(n).

    Cuando se comparan todos los pares de una matriz con m observaciones:

    • La complejidad aproximada es O(m² · n).

    Su cálculo es ligeramente más eficiente que el de la Distancia Euclidiana al no requerir operaciones de potenciación ni raíces cuadradas.

    Buenas prácticas

    Para utilizar correctamente la Distancia Manhattan se recomienda:

    • Normalizar las variables cuando tengan escalas diferentes.
    • Eliminar o tratar valores atípicos antes del cálculo cuando sea necesario.
    • Utilizarla únicamente con variables numéricas.
    • Comparar su rendimiento frente a otras métricas como Euclidiana o Coseno.
    • Reducir la dimensionalidad cuando existan muchas variables irrelevantes.
    • Validar experimentalmente la métrica más adecuada para el problema.
    • Documentar la elección de la métrica dentro del flujo de trabajo.

    Conclusión

    La Distancia Manhattan es una de las métricas de distancia más utilizadas en Ciencia de Datos y Machine Learning debido a su sencillez, eficiencia e interpretación intuitiva. Al calcular la suma de las diferencias absolutas entre las características de dos observaciones, proporciona una medida robusta para comparar datos numéricos y resulta especialmente útil en algoritmos como KNN, sistemas de recomendación basados en vecinos y técnicas de clustering.

    Aunque comparte muchas aplicaciones con la Distancia Euclidiana, su menor sensibilidad a determinadas variaciones y su bajo coste computacional la convierten en una alternativa muy interesante en problemas donde las diferencias individuales entre variables son más relevantes que la distancia geométrica directa. Como ocurre con cualquier medida de distancia, la elección de utilizar Manhattan debe basarse en la naturaleza de los datos y validarse empíricamente para garantizar el mejor rendimiento del modelo.

  • Similitud de Jaccard

    La Similitud de Jaccard (Jaccard Similarity) es una de las medidas de similitud más utilizadas para comparar conjuntos de datos. Su principal objetivo es cuantificar el grado de coincidencia entre dos conjuntos mediante la relación entre los elementos que comparten y el total de elementos distintos que contienen.

    A diferencia de otras métricas como la Similitud del Coseno o la Correlación de Pearson, la Similitud de Jaccard no tiene en cuenta la magnitud de los valores ni las puntuaciones asignadas por los usuarios. Únicamente considera si un elemento pertenece o no a un conjunto, lo que la convierte en una herramienta especialmente útil para trabajar con datos binarios, preferencias implícitas y sistemas de recomendación donde interesa conocer la presencia o ausencia de interacciones.

    Gracias a su sencillez y facilidad de interpretación, tiene aplicaciones en sistemas de recomendación, minería de datos, recuperación de información, procesamiento del lenguaje natural, bioinformática y visión por computador.

    ¿Qué es la Similitud de Jaccard?

    La Similitud de Jaccard es una medida matemática que cuantifica el grado de semejanza entre dos conjuntos comparando los elementos que tienen en común respecto al total de elementos distintos presentes en ambos.

    Matemáticamente se define como:

    $$
    J(A,B)=
    \frac{|A\cap B|}
    {|A\cup B|}
    $$

    donde:

    • \(A \cap B\) representa la intersección de ambos conjuntos.
    • \(A \cup B\) representa la unión de ambos conjuntos.

    El resultado siempre se encuentra entre 0 y 1.

    ¿Cómo funciona?

    La Similitud de Jaccard compara exclusivamente la pertenencia de los elementos a un conjunto.

    El procedimiento general consiste en:

    1. Identificar los elementos del primer conjunto.
    2. Identificar los elementos del segundo conjunto.
    3. Calcular la intersección entre ambos.
    4. Calcular la unión de ambos conjuntos.
    5. Dividir el número de elementos comunes entre el número total de elementos distintos.

    Cuanto mayor sea la proporción de elementos compartidos, mayor será la similitud.

    Interpretación de los valores

    La Similitud de Jaccard siempre toma valores comprendidos entre 0 y 1.

    ValorInterpretación
    1Ambos conjuntos son idénticos
    0.75Alta similitud
    0.50Similitud moderada
    0.25Baja similitud
    0No comparten ningún elemento

    A diferencia de Pearson o Coseno, nunca produce valores negativos.

    Ejemplo conceptual

    Supongamos las películas que han visto dos usuarios de una plataforma:

    A = ('Matrix', 'Interstelar', 'Origen', 'Dune')
    B = ('Matrix', 'Dune', 'Avatar', 'Gladiator')

    La intersección contiene:

    • Matrix
    • Dune

    La unión contiene las contiene todas, por tanto:

    $$
    J=
    \frac{2}{6}

    0.33
    $$

    Esto indica que ambos usuarios comparten aproximadamente un tercio de sus preferencias.

    Ejemplo con datos binarios

    Supongamos que cada columna representa si un usuario ha comprado un producto.

    ProductoUsuario AUsuario B
    Libro11
    Portátil10
    Ratón01
    Monitor11
    Auriculares00

    Los productos compartidos son:

    • Libro
    • Monitor

    La unión contiene:

    • Libro
    • Portátil
    • Ratón
    • Monitor

    Resultado:

    $$
    J=
    \frac{2}{4}

    0.50
    $$

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

    Muchos sistemas de recomendación trabajan con feedback implícito, donde únicamente interesa saber si un usuario ha interactuado con un elemento.

    Por ejemplo:

    • Ha comprado un producto.
    • Ha visto una película.
    • Ha escuchado una canción.
    • Ha pulsado sobre una noticia.
    • Ha añadido un artículo a favoritos.

    En estos casos no existen puntuaciones, únicamente presencia o ausencia de interacción. La Similitud de Jaccard resulta especialmente adecuada para este tipo de escenarios.

    Beneficios

    La Similitud de Jaccard ofrece numerosas ventajas.

    • Muy sencilla de interpretar.
    • Ideal para datos binarios.
    • No depende de escalas de valoración.
    • Fácil de implementar.
    • Muy utilizada en filtrado colaborativo implícito.
    • Robusta frente a diferencias de magnitud.
    • Adecuada para conjuntos dispersos.

    ¿Cuándo utilizar la Similitud de Jaccard?

    Es recomendable utilizarla cuando:

    • Se trabaja con datos binarios.
    • Se dispone únicamente de información de presencia o ausencia.
    • Se analizan compras.
    • Se estudian clics.
    • Se comparan etiquetas.
    • Se analizan intereses compartidos.
    • Se desarrollan sistemas de recomendación basados en feedback implícito.

    No suele ser la mejor opción cuando existen valoraciones numéricas.

    Ventajas y desventajas

    VentajasDesventajas
    Muy sencilla de interpretarIgnora la intensidad o puntuación de las interacciones
    Ideal para datos binariosNo funciona bien con datos continuos
    Fácil implementaciónNo distingue entre usuarios muy activos y poco activos
    Muy utilizada en sistemas implícitosPuede infraestimar la similitud cuando existen pocos elementos comunes
    EscalableNo considera relaciones entre elementos

    Limitaciones

    Aunque es una métrica muy útil, presenta algunas limitaciones.

    • Solo considera presencia o ausencia de elementos.
    • Ignora completamente las valoraciones.
    • No detecta relaciones lineales.
    • No tiene en cuenta la frecuencia de interacción.
    • Puede resultar poco representativa cuando los conjuntos son muy pequeños.
    • No captura similitudes semánticas entre elementos.

    En aplicaciones modernas suele combinarse con otras métricas o con modelos basados en embeddings.

    Similitud de Jaccard vs otras medidas

    MedidaQué comparaConsidera valoresTipo de datos recomendado
    Similitud de JaccardElementos compartidosNoDatos binarios
    Similitud del CosenoDirección de vectoresTexto, TF-IDF, Embeddings
    Similitud de PearsonRelación linealValoraciones
    Distancia EuclidianaDistancia geométricaVariables numéricas
    Distancia ManhattanDiferencias absolutasVariables numéricas

    La Similitud de Jaccard destaca cuando el objetivo es comparar conjuntos y no valores numéricos.

    Aplicaciones en Data Science y Machine Learning

    La Similitud de Jaccard aparece en numerosos problemas de Ciencia de Datos. Entre sus aplicaciones más habituales destacan:

    • Sistemas de recomendación.
    • Filtrado colaborativo basado en feedback implícito.
    • Recuperación de información.
    • Procesamiento del Lenguaje Natural (NLP).
    • Comparación de documentos.
    • Detección de documentos duplicados.
    • Sistemas de etiquetado.
    • Bioinformática.
    • Visión por computador.
    • Minería de datos.
    • Segmentación de usuarios.

    Es especialmente útil cuando las variables representan pertenencia a un conjunto.

    Implementación en Python

    Calcular la Similitud de Jaccard entre conjuntos

    usuarios_a = {
        "Matrix",
        "Origen",
        "Dune",
        "Interestelar"
    }
    
    usuarios_b = {
        "Matrix",
        "Dune",
        "Avatar",
        "Gladiator"
    }
    
    jaccard = (
        len(usuarios_a & usuarios_b) /
        len(usuarios_a | usuarios_b)
    )
    
    print(jaccard)
    

    Resultado:

    0.3333333333333333

    Utilizando Scikit-Learn

    from sklearn.metrics import jaccard_score
    
    usuario_a = [1,1,0,1,0]
    usuario_b = [1,0,1,1,0]
    
    score = jaccard_score(
        usuario_a,
        usuario_b
    )
    
    print(score)
    

    Resultado:

    0.5

    Calcular una matriz de similitud

    from sklearn.metrics import pairwise_distances
    import pandas as pd
    
    datos = pd.DataFrame([
        [1,1,0,1],
        [1,0,1,1],
        [0,1,1,0]
    ])
    
    similitud = 1 - pairwise_distances(
        datos,
        metric="jaccard"
    )
    
    print(similitud)
    

    La matriz obtenida contiene la similitud entre todos los pares de usuarios o elementos.

    Complejidad computacional

    El cálculo de la Similitud de Jaccard depende del número de características comparadas.

    Para dos conjuntos con n elementos:

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

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

    • La complejidad aproximada es O(m² · n),

    donde:

    • m representa el número de usuarios o elementos.
    • n el número de características.

    En conjuntos de datos muy grandes pueden utilizarse técnicas de indexación o aproximación para acelerar el proceso.

    Buenas prácticas

    Para utilizar correctamente la Similitud de Jaccard se recomienda:

    • Utilizarla únicamente con datos binarios o conjuntos.
    • Eliminar registros inconsistentes antes del cálculo.
    • Validar la métrica frente a otras alternativas.
    • Utilizar representaciones adecuadas para datos implícitos.
    • Combinarla con otras técnicas cuando existan valoraciones numéricas.
    • Optimizar el cálculo mediante estructuras eficientes cuando se trabaja con grandes volúmenes de datos.
    • Documentar claramente el significado de las variables binarias utilizadas.

    Conclusión

    La Similitud de Jaccard es una medida sencilla, eficiente y ampliamente utilizada para comparar conjuntos de datos mediante la proporción de elementos compartidos. Su principal fortaleza reside en que no requiere puntuaciones ni valores continuos, lo que la convierte en una excelente opción para sistemas de recomendación basados en feedback implícito, donde únicamente interesa conocer si un usuario ha interactuado o no con un elemento.

    Gracias a su facilidad de interpretación y a su bajo coste computacional, la Similitud de Jaccard continúa siendo una herramienta de referencia en sistemas de recomendación, minería de datos, recuperación de información y análisis de datos binarios. No obstante, al ignorar la intensidad de las interacciones y las relaciones entre los valores, conviene utilizarla únicamente cuando el problema pueda representarse de forma natural mediante conjuntos o variables binarias, o combinarla con otras medidas de similitud cuando se requiera una representación más completa de los datos.