rfm_segments#
- pymc_marketing.clv.utils.rfm_segments(transactions, customer_id_col, datetime_col, monetary_value_col, segment_config=None, observation_period_end=None, datetime_format=None, time_unit='D', time_scaler=1, sort_transactions=True)[fuente]#
Asigne clientes a segmentos basados en el comportamiento de gasto derivado de las puntuaciones RFM.
- Esto transforma un DataFrame de datos de transacciones de la forma:
id_cliente, fecha_hora, valor_monetario
- a un DataFrame de la forma:
id_cliente, frecuencia, recencia, valor_monetario, puntuación_rfm, segmento
Los datos de compra de los clientes se agrupan en tres variables:
recency,frequencyymonetary_value. Se estiman los cuartiles para cada variable, y luego se asigna un puntaje RFM de tres dígitos a cada cliente. Por ejemplo, un cliente con un puntaje de “234” se encuentra en el segundo cuartil pararecency, en el tercer cuartil parafrequencyy en el cuarto cuartil paramonetary_value. Se determinan los puntajes RFM correspondientes a segmentos como «Top Spender», «Frequent Buyer» o «At-Risk», y luego se segmentan los clientes en función de su puntaje RFM.- Por defecto, se crean los siguientes segmentos:
Cliente Premium: Clientes en los 2 cuartiles superiores para todas las variables.
«Cliente Recurrente»: Clientes en los 2 cuartiles superiores por frecuencia, y ya sea por recencia o valor monetario.
«Mejor Gastador»: Clientes en los 2 cuartiles superiores por valor monetario, y ya sea por frecuencia o por recencia.
«Cliente en riesgo»: Clientes en los dos cuartiles inferiores para dos o más variables.
Cliente inactivo: Clientes en el cuartil inferior para dos o más variables.
Los clientes con puntuaciones RFM no especificadas serán asignados a un segmento llamado «Otro».
Si se desea un enfoque de segmentación alternativo, utilice
rfm_summary(include_first_transaction=True, *args, **kwargs)en su lugar para preprocesar los datos para la segmentación. En cualquier caso, el DataFrame devuelto no puede ser utilizado para modelado. Si se asignan las predicciones del modelo a los segmentos RFM, cree un DataFrame separado para el modelado y únalo por ID de Cliente.- Parámetros:
- transacciones :
DataFrameDataFrame Un DataFrame de Pandas que contiene customer_id_col y datetime_col.
- customer_id_col
str Columna en el DataFrame de transacciones que denota el customer_id.
- datetime_col
str Columna en el DataFrame de transacciones que denota las fechas y horas en que se realizaron las compras.
- monetary_value_col
str Columna en el DataFrame de transacciones que denota el valor monetario de la transacción.
- segment_config :
dict, opcionalpython:dict, opcional Diccionario que contiene nombres de segmentos y lista de asignaciones de puntuaciones RFM; los pares clave/valor deben estar formateados como
{"segment": ['111', '123', '321'], ...}. Si no se proporciona, se aplican los nombres y definiciones de segmentos predeterminados.- observation_period_end :
Union[str,pandas.Period,datetime,None], opcionalUnión[python:str, pandas.Period, datetime, python:None], opcional Una cadena o fecha y hora para denotar la fecha final del estudio. Los eventos después de esta fecha se truncarán. Si no se proporciona, se establece por defecto en el máximo de datetime_col.
- datetime_format :
str, opcionalpython:str, opcional Una cadena que representa el formato de la marca de tiempo. Útil si Pandas no reconoce el formato proporcionado.
- unidad_tiempo :
str, opcionalpython:str, opcional Granularidad de tiempo para el estudio. Predeterminado: “D” para días. Los valores posibles se enumeran aquí: https://numpy.org/devdocs/reference/arrays.datetime.html#datetime-units
- time_scaler :
int, opcionalpython:int, opcional Predeterminado: 1. Escala recencia y T a una granularidad temporal diferente. Esto es útil para conjuntos de datos que abarcan muchos años y para realizar predicciones en diferentes escalas de tiempo.
- sort_transactions : bool, opcionalbool, opcional
Predeterminado: Verdadero Si los datos sin procesar ya están ordenados en orden cronológico, establezca en Falso para mejorar la eficiencia computacional.
- transacciones :
- Devoluciones:
DataFrameDataframe que contiene datos RFM resumidos, puntuaciones RFM y asignaciones de segmentos