Compresión del Negocio

La industria musical moderna se encuentra fuertemente impulsada por las plataformas de streaming, como Spotify, que no solo ofrecen acceso inmediato a millones de canciones, sino que también recopilan grandes cantidades de datos sobre características sonoras y preferencias de los usuarios. En este entorno altamente competitivo y dinámico, la personalización de contenidos se ha convertido en un factor clave para retener usuarios, mejorar la experiencia musical y fomentar el descubrimiento de nuevos artistas.

Uno de los grandes desafíos que enfrentan las plataformas de música en línea es cómo organizar y recomendar canciones de forma efectiva. Debido a la gran cantidad de música disponible, identificar patrones en las características de las canciones puede ayudar significativamente en la creación de listas de reproducción automáticas, descubrimiento de música similar y segmentación de catálogos por estilo o “mood”.

Aquí es donde los modelos de clustering pueden desempeñar un papel fundamental. Mediante el agrupamiento de canciones en función de características como danceability, energy, tempo, valence y otras propiedades extraídas mediante análisis de audio, es posible identificar grupos de canciones con perfiles musicales similares. Estos grupos pueden representar géneros, estados de ánimo o estilos comunes, sin necesidad de etiquetas explícitas, lo que ofrece un enfoque más objetivo y adaptable al análisis de contenido musical.

¿Por qué es importante el clustering de canciones para Spotify o una plataforma musical?

El análisis mediante técnicas de clustering desempeña un papel clave en la organización y gestión del contenido musical en plataformas de streaming como Spotify. Estas plataformas manejan catálogos con millones de canciones, y agruparlas según sus características acústicas —como la energía, la bailabilidad, el tempo o la valencia emocional— permite identificar similitudes que no dependen necesariamente de etiquetas de género o metadatos manuales. A través del agrupamiento no supervisado, se pueden generar estructuras lógicas que reflejan cómo suenan realmente las canciones, lo cual aporta una clasificación más objetiva y funcional del contenido musical.

Una de las aplicaciones más significativas del clustering es la mejora en la personalización de la experiencia del usuario. Al conocer el tipo de canciones que escucha una persona y los clústeres a los que pertenecen, la plataforma puede recomendar nuevos temas con perfiles similares, lo que incrementa la relevancia de las sugerencias. Asimismo, este agrupamiento permite generar listas de reproducción de forma automatizada, garantizando que las canciones seleccionadas mantengan una coherencia sonora entre sí. Esta automatización no solo reduce el esfuerzo curatorial, sino que también permite escalar la personalización para millones de usuarios simultáneamente.

Además, el clustering abre la posibilidad de realizar análisis a gran escala sobre tendencias musicales y dinámicas de consumo. Al observar cómo cambian los grupos de canciones más escuchados a lo largo del tiempo, es posible identificar la evolución de estilos musicales o el surgimiento de nuevas combinaciones sonoras. Esta información resulta valiosa tanto para la plataforma como para artistas y productores, ya que permite adaptar estrategias de mercado. Del mismo modo, las canciones emergentes que comparten características con éxitos populares pueden ser promovidas automáticamente, fomentando el descubrimiento de nuevos talentos y diversificando la oferta musical disponible para los oyentes.

¿Cómo puede afectar esto al negocio?

El uso de técnicas de clustering en el análisis de canciones tiene un impacto directo en la retención de usuarios, incremento del tiempo de escucha y fidelización. Los usuarios valoran la personalización y la capacidad de descubrir nueva música que se ajusta a sus gustos. Además, al automatizar parte del proceso de curaduría, Spotify puede optimizar recursos humanos y ofrecer contenido de valor a escala global.

Por otro lado, los artistas y sellos discográficos pueden beneficiarse de estos análisis, obteniendo información útil sobre el posicionamiento de sus canciones frente a otras similares, y planificando estrategias de lanzamiento más efectivas.

Transformación del Problema en un Análisis de Datos

El problema de agrupar canciones según sus características acústicas y patrones de escucha se puede abordar mediante un análisis de datos no supervisado, cuyo objetivo es identificar estructuras latentes dentro del conjunto musical sin necesidad de contar con etiquetas predefinidas. En este caso, transformamos el problema en una tarea de clustering, en la que buscamos detectar grupos naturales de canciones que presenten similitudes significativas en sus propiedades sonoras o en la manera en que los usuarios las consumen.

Aplicaremos algoritmos de clustering, como K-Means, con el fin de identificar clústeres de canciones que compartan características similares. El resultado de este proceso no será una predicción directa, como ocurre en los modelos supervisados, sino una clasificación emergente que nos permitirá descubrir agrupaciones musicales útiles para generar playlists más coherentes, mejorar las recomendaciones personalizadas, analizar tendencias y ofrecer herramientas analíticas para artistas y productores.

Proceso de Transformación

El primer paso será recopilar datos musicales representativos, utilizando para ello la base de datos “Million Song Dataset + Spotify + Last.fm”, disponible en Kaggle. Este conjunto combina información de audio extraída de la API de Spotify con datos de escucha de usuarios provenientes de Last.fm, lo que permite un análisis robusto tanto desde el punto de vista sonoro como del comportamiento del oyente. La base incluye variables cuantitativas clave como danceability, energy, tempo, valence, loudness, acousticness, instrumentalness, y speechiness, las cuales describen el perfil acústico de cada canción.

A continuación, estos datos serán preparados para su análisis. El proceso de preparación incluye la selección de las variables más relevantes, la eliminación de valores faltantes, y la normalización de las características numéricas para asegurar que todas tengan un peso proporcional en el modelo. Esta etapa es fundamental, ya que garantiza que el algoritmo de agrupamiento no se vea influenciado de forma injusta por escalas distintas entre variables. Además, se podrán explorar y depurar valores atípicos que podrían distorsionar los resultados del agrupamiento.

Una vez los datos estén listos, se aplicará un algoritmo de clustering, como K-Means, que permitirá segmentar las canciones en diferentes clústeres basados en su similitud dentro del espacio de características acústicas. El objetivo no será predecir una etiqueta fija, sino descubrir patrones subyacentes que agrupen canciones con perfiles similares. Estos grupos podrán ser utilizados para múltiples fines prácticos, como generar automáticamente listas de reproducción coherentes, mejorar la personalización de las recomendaciones para los usuarios, y analizar tendencias musicales a partir de las características dominantes de cada grupo.

Beneficios

Este enfoque de análisis de datos permitirá a Spotify optimizar la organización y recomendación de canciones al agruparlas automáticamente según sus características acústicas y patrones de escucha, lo que mejorará la coherencia de las playlists, la precisión de las recomendaciones y el descubrimiento de música emergente, enriqueciendo así la experiencia del usuario. Además, la segmentación obtenida a través del clustering proporcionará herramientas para analizar tendencias musicales y patrones de consumo, permitiendo una personalización más avanzada y la creación de playlists adaptadas a los gustos individuales, lo que incrementará la satisfacción y la interacción de los usuarios. Por último, artistas y productores podrán usar los resultados del análisis para ajustar su producción y estrategia de promoción, mejorando su visibilidad y éxito comercial, lo que impulsará el crecimiento del ecosistema musical en general.

Comprensión de los Datos

Estructura del Conjunto de Datos

El conjunto de datos está compuesto por:

## Número de filas (observaciones): 50683
## Número de columnas (variables): 21

Estas variables se dividen según su tipo de dato en:

## Cantidad de variables numéricas: 14

Que incluyen información como el número de noches reservadas, el número de acompañantes, el tiempo de antelación con el que se realizó la reserva, la tarifa diaria promedio, entre otras.

## Cantidad de variables categóricas: 7

Que representan atributos como el tipo de hotel, el país de procedencia del cliente, el canal de distribución, el estado de la reserva y el tipo de cliente.

A continuación se listan las variables incluidas en el dataset:

## Variables del dataset:
##  [1] "track_id"            "name"                "artist"             
##  [4] "spotify_preview_url" "spotify_id"          "tags"               
##  [7] "genre"               "year"                "duration_ms"        
## [10] "danceability"        "energy"              "key"                
## [13] "loudness"            "mode"                "speechiness"        
## [16] "acousticness"        "instrumentalness"    "liveness"           
## [19] "valence"             "tempo"               "time_signature"

Descripción y Análisis de Variables

A continuación, se presenta una tabla con la descripción de las principales variables del conjunto de datos, su tipo y su significado en el contexto del análisis de cancelaciones:

Resumen estadístico y descripción de las variables
variable tipo faltantes estadisticas descripcion
year numeric 0 Min: 1900 Max: 2022 Media: 2004.01732336286 SD: 8.86017154432944 Año de lanzamiento de la canción
duration_ms numeric 0 Min: 1439 Max: 3816373 Media: 251155.105972417 SD: 107585.956030556 Duración de la canción en milisegundos
danceability numeric 0 Min: 0 Max: 0.986 Media: 0.493536767752501 SD: 0.17883817533494 Bailabilidad de la canción (0 a 1, 1 es más bailable)
energy numeric 0 Min: 0 Max: 1 Media: 0.686486489343567 SD: 0.25180819803198 Nivel de energía de la canción (0 a 1, 1 es más energética)
key numeric 0 Min: 0 Max: 11 Media: 5.31274786417536 SD: 3.56807782780643 Tonalidad musical de la canción (en notas musicales)
loudness numeric 0 Min: -60 Max: 3.642 Media: -8.29120381587514 SD: 4.54836494239376 Volumen medio de la canción en decibelios (dB)
mode numeric 0 Min: 0 Max: 1 Media: 0.631059724167867 SD: 0.482522478759781 Modo musical de la canción (Mayor o menor)
speechiness numeric 0 Min: 0 Max: 0.954 Media: 0.0760227137304422 SD: 0.076007396184396 Cantidad de contenido hablado en la canción (0 a 1, 1 es más hablado)
acousticness numeric 0 Min: 0 Max: 0.996 Media: 0.213807674689738 SD: 0.302848400211625 Nivel de acústica de la canción (0 a 1, 1 es más acústica)
instrumentalness numeric 0 Min: 0 Max: 0.999 Media: 0.225283354239883 SD: 0.337049275671686 Nivel de instrumentalidad de la canción (0 a 1, 1 es más instrumental)
liveness numeric 0 Min: 0 Max: 0.999 Media: 0.215424791547462 SD: 0.18469653649309 Nivel de energía en vivo de la canción (0 a 1, 1 es más en vivo)
valence numeric 0 Min: 0 Max: 0.993 Media: 0.433133885918355 SD: 0.258779400110979 Valoración emocional de la canción (0 a 1, 1 es más positiva)
tempo numeric 0 Min: 0 Max: 238.895 Media: 123.507681924906 SD: 29.6211249677354 Tempo o ritmo de la canción en pulsos por minuto (BPM)
time_signature numeric 0 Min: 0 Max: 5 Media: 3.89815125387211 SD: 0.419669894300827 Firma de tiempo musical de la canción (por ejemplo, 4/4, 3/4, etc.)
track_id character 0 N/a ID único de la pista
name character 0 N/a Nombre de la canción
artist character 0 N/a Nombre del artista de la canción
spotify_preview_url character 0 N/a URL previa de la canción en Spotify
spotify_id character 0 N/a ID único de la canción en Spotify
tags character 1127 N/a Etiquetas asociadas a la canción
genre character 28335 N/a Género musical de la canción

Análisis de las Variables Numéricas

  1. year (Año de lanzamiento de la canción):
    • La media de esta variable es 2004, con un rango que va desde 1900 hasta 2022. Esto indica que la base de datos contiene canciones de una amplia gama temporal, aunque la mayoría parece concentrarse en las últimas dos décadas. La desviación estándar de 8.86 sugiere una moderada dispersión, lo que refleja una diversidad razonable en la época de publicación de las canciones.
  2. duration_ms (Duración de la canción):
    • La duración promedio de las canciones es de aproximadamente 251,155 milisegundos, lo que equivale a poco más de 4 minutos. El valor máximo supera los 63 minutos, lo que probablemente corresponde a pistas extensas o piezas poco convencionales. La desviación estándar alta (107,585 ms) indica una gran variedad en las duraciones.
  3. danceability (Bailabilidad):
    • Con una media de 0.49, esta variable sugiere que el nivel de bailabilidad es moderado en promedio. El rango va de 0 a 0.986, lo que indica que existen canciones con muy baja y muy alta bailabilidad. Esta variable puede ser fundamental para crear playlists enfocadas en géneros de música para fiestas o relajación, dependiendo del grupo al que pertenezca la canción.
  4. energy (Energía):
    • La energía media de las canciones es alta (0.686), lo que sugiere que muchas pistas en el dataset tienen un ritmo rápido, gran intensidad o fuerte presencia instrumental. Esta característica es particularmente útil para clasificar canciones según su impacto emocional o uso en actividades físicas, como el ejercicio.
  5. loudness (Volumen medio):
    • El valor medio de esta variable es de -8.29 dB, con una gran variación hasta -60 dB, que representa grabaciones extremadamente silenciosas. Este rango tan amplio puede reflejar diferencias entre grabaciones modernas y antiguas, o entre estilos musicales acústicos y electrónicos.
  6. valence (Positividad emocional):
    • La media de esta variable es de 0.43, lo que sugiere que la mayoría de las canciones tienen un tono emocional moderado, ni particularmente alegre ni triste. Esta variable, en combinación con la energía, es muy útil para inferir el “estado de ánimo” de una canción,
  7. instrumentalness (Instrumentalidad):
    • El valor promedio es de 0.225, lo cual indica que muchas canciones contienen voz, pero también hay una presencia significativa de pistas instrumentales. Esta variable es muy útil para segmentar contenido como música para estudio, relajación o producción audiovisual.
  8. speechiness (Contenido hablado):
    • La media es de 0.076, lo que refleja que la mayoría de las canciones no tienen una gran cantidad de contenido hablado, aunque hay algunas excepciones (como podcasts o hip-hop). Esta variable puede ayudar a distinguir entre música convencional y contenido más narrativo o experimental.
  9. tempo (Ritmo en BPM):
    • El tempo medio es de 123.5 BPM, un valor típico en géneros como el pop, rock o electrónica. El amplio rango (0–238) indica la presencia de canciones extremadamente lentas y muy rápidas, por lo que esta variable es esencial para segmentar según energía rítmica.
  10. acousticness (Acústica):
    • Con un valor promedio de 0.213, este indicador sugiere que el dataset está compuesto principalmente por canciones con producción electrónica o mezcla instrumental, más que piezas puramente acústicas. Es una métrica relevante para identificar canciones con estilo unplugged o folk.

Análisis de las Variables Categóricas

Análisis univariado

En esta etapa se analiza cada variable de forma individual con el objetivo de entender su distribución, identificar valores atípicos y detectar posibles problemas en los datos. Esto es esencial para preparar correctamente las variables antes de evaluar su relación con la cancelación de reservas y construir modelos predictivos más robustos.

Gráfico de correlaciones (heatmap)