Icon

Brazilian Ecommerce Project

Se identifica que aunque existe el customer_id este no identifica un cliente de manera unica, el codigo del cliente es customer_unique_id.

Adicional se identifica que no existen valores nulos en las variables

Se encontro que la columna categorica order_status esta principalmente asignada al valor delivered, por lo que parece no representar mayor aporte.

Adicional se crean columnas de variables derivadas interesantes

  • deivery_time_days - Tiempo total desde compra a entrega

  • shipping_delay_days - Tiempo de retraso (positivo= entregado tarde)

  • delivery_on_time - binario de cumplimiento de entrega

Se encuentra que payment_sequential es el numero de pagos, y payment_installment es el numero de pagos totales, por lo que se ve sospechoso que el segundo sea menor al primero, por lo que se crea una columna para revisar el caso y saber cuanto es la proporcion, pero se descarta dado que si pueden existir varios intentos de pagos.

Analizar el comportamiento de los clientes del e-commerce brasileño olist, identificando patrones de compra, cumplimiento logístico y satisfacción del cliente, con el fin de segmentar perfiles y proponer mejoras estrategicas

Preguntas

  • ¿Cuáles son los principales factores asociados a las demoras en las entregas?

    • El DataSet no tiene registros de no entregados

  • ¿Qué segmentos de clientes muestran mayor frecuencia y valor de compra?

  • ¿Qué características definen a los clientes con mejores evaluaciones?

  • ¿Cuál es el perfil de los clientes que no dejan reseñas?

Se encuentra que puede existir varios intentos de pago y esto genera una cardinalidad de 1-N, por lo que se decide agrupar los datos de payments creando:

  • n_payments

  • total_paid

  • installments_sum

Adicional se ha pivotado payments para traer el tipo de pago y conservarlo como variable para el modelo.

Y debido a la existencia de 1 solo registro sin pago y al pivot, se genera un missing values para corregir.

Se encuentra que en el dataset de review una misma review puede estar vinculada a mas de una orden de compra lo que se considera un error y por el volumen se decide eliminarlos

Mas de la mitad de reviews realizadas no tienen un comentario por lo que se elige este hecho para realizar un proceso de cluster para detectar una insatisfacción escondida, adicional se sube el dataset review a nivel de pedido

Se encuentran varios productos con categorias nula y sin traducción, se crea una columna con el valor de categoria final

Se encuentra que cada order_item_id se refiere a una unidad de producto, por lo que se debe agrupar por producto por orden para tener la cantidad de productos, aunque es realmente minimo el cambio y se podria omitir y calcular el precio de la orden.

Asi mismo para elevarlo a nivel de orden de pedido, se evidencia un problema con las categorias, para poder transportar esta información se reclasificaran todas las que representen menos del 1% en una super categoria.

Identificación categorias >0.3% otras_categorias, se dejo en ese porcentaje dado que no existe ninguna categoria que supere el 10% y agrupar tantas en otras categorias la colocaba de primer lugar pudiendo asi introducir ruido a los analisis

Comprobación de representación otras categorias

Codificación de variable 'categoria' mediante conteo de frecuencia y peso por orden

Se lleva el dataset de productos a nivel de orden y se le agregan la codificación de la categoria.

Clusterización de ordenes para identificar perfiles de datos

  • Filtrar solo por status delivered, dado que las demas siguen en flujo de entrega.

  • Quitar columnas de fechas e identificativos, y metodo de pago no definido ya que esta en 0

  • Reemplazar los missing value por 0 dado que principalmente estan presentes en los valores de score de las review, y el de fotos del producto

  • Aplicar PCA sobre las columnas de las categorias (Pendiente medir mejor d)

  • Normalizar todas las columnas excepto las que representan a las categorias

K- means

DBSCAN

Row Filter
Validación productos
GroupBy
Column Renamer
Column Expressions (legacy)
Row Filter
GroupBy
order total
GroupBy
Value Counter
Dataset order_product
Column Expressions (legacy)
Order_category
GroupBy
Joiner
Math Formula
GroupBy
Cross Joiner
GroupBy
Math Formula
Joiner
Rule Engine
Value Counter
Customer
CSV Reader
order
CSV Reader
items
CSV Reader
Left clientes y ordenes
Joiner
Joiner
GroupBy
Bar Chart
String Cleaner
Data Explorer
no_coment_review
Expression
String to Date&Time
Value Counter
String Cleaner
shipping_delay_days
Date&Time Difference
Data Explorer
delivery_time_days
Date&Time Difference
Rule Engine
GroupBy
Missing Value
Value Counter
Row Filter
Normalizer
PCA
Bar Chart
products
CSV Reader
String Cleaner
Inclusion categoria
Joiner
Joiner
3 cluster
k-Means
traduccion
CSV Reader
4 cluster
k-Means
Optimized K-Means (Silhouette Coefficient)
Rule Engine
Violin Plot (Plotly)
Violin Plot (Plotly)
Optimizet cluster
k-Means
Numeric Outliers
Expression
Value Counter
Data Explorer
Top k Row Filter
Limpieza espacios
String Cleaner
Color Manager
frecuencia order_status
Bar Chart
Table Column to Variable
Scatter Plot
Limpieza de espacios
String Cleaner
Scatter Plot
Eliminar duplicados payments
GroupBy
Pivote payment_type
Pivot
Color Manager
DBSCAN
Scatter Plot
Incluir payment_type pivotado
Joiner
String Cleaner
execute up-stream before configuration
AutoML (Regression)
Color Manager
GroupBy
Row Filter
Bar Chart
Value Counter
Missing Value
Extract Table Dimension
Joiner
Cross Joiner
GroupBy
Math Formula
Column Filter
Pivot
Row Filter
Rule Engine
Missing Value
GroupBy
Column Renamer
Extract Table Dimension
Joiner
Joiner
Concatenate
payments
CSV Reader
Column Filter
Concatenate
Extract Table Dimension
Data Explorer
review
CSV Reader
order payments
Joiner
order_status
Value Counter
Data Explorer
GroupBy
Data Explorer

Nodes

Extensions

Links