UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
ESCUELA DE POSGRADO
MAESTRÍA EN ESTADÍSTICA
Curso: Minería de Datos
Título del proyecto: Análisis de ventas y patrones de compra mediante técnicas de Machine Learning en Online Retail
Estudiante: Any Lopez Rojas
Docente: Cleto de la Torre Dueñas
Lugar y año: Cusco, Perú, 2026
El comercio electrónico genera registros que permiten estudiar las ventas, las características de las operaciones y los patrones de compra. Para transformar esta información en evidencia útil es necesario comprender la estructura de los datos, evaluar su calidad y seleccionar técnicas de análisis acordes con cada objetivo.
En este trabajo se utiliza el conjunto de datos Online Retail, publicado en el repositorio UCI por Chen (2015). La base original contiene 541 909 registros de operaciones de una empresa de comercio electrónico del Reino Unido, correspondientes al periodo comprendido entre el 1 de diciembre de 2010 y el 9 de diciembre de 2011. La empresa se dedica principalmente a la comercialización de regalos y artículos para distintas ocasiones, y parte de sus clientes son mayoristas.
El proyecto comprende seis actividades: comprensión y preparación de los datos, predicción de ventas diarias, clasificación de facturas, segmentación de clientes, identificación de asociaciones entre productos y análisis de las descripciones mediante minería de texto. Cada actividad requiere una unidad de análisis específica y decisiones de preparación coherentes con su finalidad.
El análisis se desarrollará en RStudio mediante un procedimiento reproducible. Los modelos supervisados se evaluarán con datos reservados para prueba, mientras que los segmentos, las reglas y los términos identificados se interpretarán según sus características observadas. Las conclusiones se limitarán al periodo, la empresa y los registros efectivamente analizados.
Los registros comerciales contienen información detallada, pero su estructura original no responde directamente a preguntas sobre ventas diarias, categorías de facturas, segmentos de clientes o asociaciones entre productos. Además, las cancelaciones, los valores ausentes, las repeticiones y los posibles valores extremos requieren una revisión previa para evitar interpretaciones equivocadas.
Una fila representa una línea de detalle de una operación. En consecuencia, no debe confundirse el número de filas con el número de facturas, clientes o compras independientes. Asimismo, una cantidad negativa o una factura de cancelación no constituye automáticamente un error de registro.
El problema consiste en determinar cómo preparar y analizar esta información para obtener predicciones y patrones evaluables, evitando la fuga de información, la eliminación injustificada de registros y las conclusiones que excedan la evidencia disponible.
¿Cómo pueden las técnicas de Machine Learning aplicadas al conjunto Online Retail contribuir a predecir ventas diarias, clasificar facturas, segmentar clientes e identificar asociaciones entre productos y patrones en sus descripciones?
Aplicar y evaluar técnicas de Machine Learning sobre el conjunto Online Retail para predecir ventas diarias, clasificar facturas, segmentar clientes y descubrir patrones de asociación y de contenido textual, mediante un análisis reproducible en RStudio.
La base Online Retail fue publicada por Chen (2015) en UCI Machine Learning Repository. El archivo original, denominado Online Retail.xlsx, contiene 541 909 registros y ocho columnas.
El periodo documentado comprende del 1 de diciembre de 2010 al 9 de diciembre de 2011. Estos datos describen operaciones históricas de una empresa del Reino Unido; no constituyen una muestra representativa de todo el comercio electrónico.
Página oficial:
https://archive.ics.uci.edu/dataset/352/online+retail
Identificador DOI:
https://doi.org/10.24432/C5BW33
Licencia: Creative Commons Attribution 4.0 International.
| Variable | Tipo conceptual | Descripción |
|---|---|---|
| InvoiceNo | Categórica nominal | Identificador de factura; el prefijo C indica cancelación. |
| StockCode | Categórica nominal | Identificador del producto. |
| Description | Texto | Nombre o descripción del producto en inglés. |
| Quantity | Cuantitativa discreta | Cantidad del producto registrada en la línea. |
| InvoiceDate | Temporal | Fecha y hora de la operación. |
| UnitPrice | Cuantitativa continua | Precio unitario expresado en libras esterlinas. |
| CustomerID | Categórica nominal | Identificador del cliente. |
| Country | Categórica nominal | País asociado al cliente. |
El estudio tendrá un enfoque cuantitativo, observacional y retrospectivo, con componentes descriptivos y predictivos. Se analizarán registros preexistentes sin manipular las condiciones en que ocurrieron las operaciones.
El procedimiento comprenderá diagnóstico de calidad, preparación específica por actividad, construcción de variables, ajuste de modelos, evaluación e interpretación.
Se conservará una copia de los datos originales y se registrará el número de observaciones afectadas por cada decisión.
Se cuantificarán los valores ausentes por variable y su porcentaje. El tratamiento dependerá del significado de la variable y de la tarea.
No se imputarán identificadores de clientes mediante medias, medianas u otros procedimientos numéricos, porque ello podría crear vinculaciones ficticias entre operaciones. Las filas sin CustomerID podrán utilizarse en actividades que no requieran identificar clientes, si cumplen los demás criterios.
Cuando se considere imputar otras variables, se justificará el procedimiento y, en análisis predictivos, se ajustará exclusivamente con información de entrenamiento.
Se identificarán duplicados exactos mediante la coincidencia de las ocho columnas originales. Se distinguirán de las filas que comparten factura y producto pero difieren en cantidad, precio, fecha u otro atributo.
La coincidencia parcial no se utilizará como evidencia suficiente para eliminar registros. Incluso la eliminación de duplicados exactos se documentará como una decisión de preparación, pues la coincidencia por sí sola no demuestra el origen de la repetición.
Se examinarán por separado:
Para estudiar ventas positivas y construir cestas de compra se definirá una tabla de operaciones con cantidades y precios positivos, excluyendo cancelaciones según el criterio documentado. Esta definición corresponde a ventas brutas positivas y no equivale a ventas netas de devoluciones.
Se utilizarán resúmenes descriptivos y gráficos para identificar valores extremos en cantidades, precios e importes. Las reglas estadísticas, como el rango intercuartílico, se emplearán como herramientas de detección y no como órdenes automáticas de eliminación.
Se considerará que la presencia de mayoristas puede producir compras de gran volumen. Cualquier exclusión o transformación deberá justificarse y evaluarse por su efecto sobre los resultados.
| Variable | Definición | Uso |
|---|---|---|
| Importe de línea | Quantity × UnitPrice | Agregaciones monetarias |
| Fecha | Fecha sin componente de hora | Agregación diaria |
| Venta diaria | Suma del importe de las operaciones incluidas por día | Regresión |
| Importe de factura | Suma del importe de sus líneas incluidas | Etiqueta de clasificación |
| Factura de importe alto | Indicador de superar el umbral definido en entrenamiento | Clasificación |
| Recencia | Días entre la última compra y la fecha de corte | Clustering |
| Frecuencia | Número de facturas distintas por cliente | Clustering |
| Valor monetario | Importe acumulado por cliente | Clustering |
Se compararán al menos dos modelos: regresión lineal y árbol de regresión o Random Forest.
La variable respuesta será la venta diaria bajo la definición comercial adoptada. Los predictores podrán incluir características del calendario y rezagos de ventas, siempre que estén disponibles en el momento del pronóstico.
La partición respetará el orden temporal: el tramo inicial se utilizará para entrenamiento y el más reciente para prueba. La selección de parámetros se realizará dentro del entrenamiento.
Se documentará el horizonte de predicción. Si se utilizan ventas observadas del día anterior durante la prueba, la evaluación se interpretará como un procedimiento de un paso adelante.
Se reportarán MAE, RMSE y R² predictivo:
\[ MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-\widehat{y}_i| \]
\[ RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\widehat{y}_i)^2} \]
\[ R^2=1-\frac{\sum_{i=1}^{n}(y_i-\widehat{y}_i)^2} {\sum_{i=1}^{n}(y_i-\bar{y})^2} \]
El R² predictivo puede ser negativo. No se sustituirá por la correlación al cuadrado sin aclarar que se trata de otra medida.
Se definirá una etiqueta binaria que distinga facturas de importe alto y no alto. El umbral se establecerá utilizando únicamente entrenamiento y permanecerá fijo en la prueba.
Se compararán al menos dos clasificadores, como regresión logística, CART o Random Forest.
Se excluirá el importe de factura de los predictores. También se revisarán sus componentes y transformaciones para evitar una reconstrucción directa de la etiqueta. Se declarará el momento de predicción para determinar qué información estaría realmente disponible.
La clase positiva será “Alto”. Se reportarán matriz de confusión, exactitud, sensibilidad, especificidad y F1, junto con la distribución de clases y una referencia basada en la clase mayoritaria.
Se construirán variables RFM para clientes con identificador disponible. La fecha de corte se fijará después de la última fecha incluida en el análisis.
Se examinarán las distribuciones y, cuando corresponda, se aplicarán transformaciones logarítmicas antes de la estandarización. Se utilizará K-means y se justificará el número de grupos mediante el método del codo y/o la silueta.
Los grupos se describirán mediante tamaños y resúmenes de RFM en sus unidades originales. Sus nombres comerciales se asignarán después de examinar los perfiles.
Se construirán cestas con productos distintos por factura. La repetición de un producto dentro de una factura se representará como presencia del producto para este análisis.
Se aplicará Apriori y se documentarán soporte mínimo, confianza mínima y longitud de las reglas. Se interpretarán al menos cinco reglas, considerando soporte, confianza, lift y número de facturas que las respaldan.
Las asociaciones se interpretarán como coocurrencias y no como relaciones causales.
Se analizará Description mediante limpieza textual, tokenización, revisión de palabras vacías y cálculo de frecuencias.
Se declarará si el corpus contiene todas las líneas de venta o descripciones únicas por producto. El primer criterio pondera los términos por aparición en líneas; el segundo describe principalmente el catálogo.
Las palabras se revisarán en su contexto comercial. No se realizará una interpretación de sentimiento, porque las descripciones son nombres de productos y no opiniones de clientes.
Se registrarán semillas aleatorias, versiones de paquetes, criterios de limpieza, periodos de partición y parámetros de los algoritmos. El código deberá ejecutarse en orden desde la importación hasta las conclusiones.
Esta sección se completará después de ejecutar el análisis. No se presentan cifras ni desempeños que todavía no hayan sido calculados.
Se presentarán dimensiones, tipos de variables, valores ausentes, duplicados exactos y observaciones señaladas por los criterios de revisión.
La tabla antes y después distinguirá registros detectados, registros modificados y registros excluidos. Los indicadores pueden solaparse; por ello, sus frecuencias no se sumarán como si fueran categorías excluyentes.
# Incorporar aquí el código ejecutado del diagnóstico.
# Mostrar la tabla de calidad antes y después de la preparación.Interpretación: [Describir las cifras obtenidas, las decisiones aplicadas y su efecto sobre los datos disponibles.]
Se mostrarán la evolución diaria de ventas y las distribuciones de Quantity, UnitPrice e importe, indicando la tabla de operaciones utilizada.
Interpretación: [Describir tendencias, asimetrías y valores extremos observados, sin atribuir causas no verificadas.]
Se presentarán los periodos de entrenamiento y prueba, las métricas por modelo y el gráfico de ventas observadas y predichas.
# Mostrar tabla con Modelo, MAE, RMSE y R2.
# Graficar observados y predicciones del periodo de prueba.Interpretación: [Identificar el modelo con menor error bajo el criterio principal declarado y explicar los desacuerdos entre métricas.]
Se reportarán el umbral monetario, la distribución de clases, las matrices de confusión y las métricas de los clasificadores.
Interpretación: [Comparar falsos positivos y falsos negativos. Relacionar sensibilidad, especificidad y F1 con la clase Alto.]
Se mostrarán los criterios utilizados para elegir el número de grupos, sus tamaños y los perfiles de recencia, frecuencia y valor monetario.
Interpretación: [Describir cada grupo según sus resultados. No asignar características que no se hayan medido.]
Se presentarán al menos cinco reglas con antecedente, consecuente, soporte, confianza, lift y frecuencia absoluta.
Interpretación: [Explicar cada regla en términos de las facturas analizadas, su frecuencia y su asociación respecto al soporte del consecuente.]
Se mostrarán las frecuencias de términos y un gráfico de los más relevantes, indicando la unidad de conteo utilizada.
Interpretación: [Describir el contenido comercial observado. No confundir frecuencia de palabras con preferencias declaradas o satisfacción de clientes.]
[Comparar MAE, RMSE y R² sobre el mismo periodo de prueba. Precisar si la ventaja observada es consistente entre métricas y si los errores se concentran en días particulares.]
[Comparar los clasificadores sobre las mismas facturas de prueba. Considerar el desbalance y el tipo de error, además de la exactitud.]
[Relacionar los perfiles y patrones observados cuando exista evidencia para hacerlo. No afirmar que un segmento compra determinados productos si esa relación no se ha calculado.]
No se establecerá un único algoritmo ganador para todo el proyecto, porque las actividades responden a objetivos y métricas diferentes.
Cobertura histórica y empresarial. Los datos corresponden a una empresa y a un periodo de 2010–2011; su generalización a otros contextos requiere evidencia adicional.
Clientes sin identificación. Excluirlos del análisis RFM puede producir sesgo si sus operaciones difieren de las de clientes identificados.
Decisiones de limpieza. Excluir cancelaciones, precios cero o registros repetidos cambia la población analizada y la interpretación del importe de ventas.
Compras mayoristas. Los valores extremos pueden reflejar operaciones válidas y afectar de manera importante las agregaciones.
Cobertura del calendario. La ausencia de registros en una fecha no demuestra por sí sola que las ventas hayan sido cero. Además, diciembre de 2011 no cubre el mes completo.
Dependencia temporal y entre clientes. Las observaciones pueden compartir patrones por fecha o cliente; una partición aleatoria puede ofrecer una evaluación demasiado favorable para ciertos usos.
Etiqueta construida. La categoría de importe alto depende del umbral elegido y no constituye una categoría natural o universal.
Sobreajuste y fuga de información. Usar la prueba para seleccionar modelos, transformaciones o umbrales comprometería la evaluación.
Segmentación exploratoria. Los grupos dependen de las variables, transformaciones, escalas y parámetros elegidos.
Selección de reglas. Explorar numerosas reglas puede producir patrones inestables. Un lift alto con pocas facturas requiere cautela.
Alcance del texto. Description describe productos y no permite medir satisfacción ni sentimiento de los compradores.
Las siguientes conclusiones se completarán exclusivamente a partir de las salidas ejecutadas:
[Relacionar cada recomendación con una tabla, gráfico o resultado concreto. Las propuestas comerciales se formularán como acciones por evaluar, sin afirmar incrementos de ventas que no se hayan medido.]
Chen, D. (2015). Online Retail [Conjunto de datos]. UCI Machine Learning Repository. https://doi.org/10.24432/C5BW33
[Agregar las referencias efectivamente consultadas para los métodos y paquetes utilizados. No incluir bibliografía que no se haya revisado.]
[Adjuntar el archivo .R completo o incorporar el código en el orden en que debe ejecutarse, conforme a las indicaciones del docente.]
## R version 4.6.1 (2026-06-24 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 10 x64 (build 19045)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## locale:
## [1] LC_COLLATE=Spanish_Peru.utf8 LC_CTYPE=Spanish_Peru.utf8
## [3] LC_MONETARY=Spanish_Peru.utf8 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Peru.utf8
##
## time zone: America/Lima
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] digest_0.6.39 R6_2.6.1 fastmap_1.2.0 xfun_0.60
## [5] cachem_1.1.0 knitr_1.52 htmltools_0.5.9 rmarkdown_2.32
## [9] lifecycle_1.0.5 cli_3.6.6 sass_0.4.10 jquerylib_0.1.4
## [13] compiler_4.6.1 rstudioapi_0.19.0 tools_4.6.1 evaluate_1.0.5
## [17] bslib_0.12.0 yaml_2.3.12 otel_0.2.0 jsonlite_2.0.0
## [21] rlang_1.3.0