rfm_train_test_split#

pymc_marketing.clv.utils.rfm_train_test_split(transactions, customer_id_col, datetime_col, train_period_end, test_period_end=None, time_unit='D', time_scaler=1, datetime_format=None, monetary_value_col=None, include_first_transaction=False, sort_transactions=True)[fuente]#

Resuma los datos de transacciones y divídalos en conjuntos de datos de entrenamiento y prueba para el modelado de CLV.

Esto también se puede utilizar para evaluar el impacto de una intervención basada en el tiempo, como una campaña de marketing.

Esto transforma un DataFrame de datos de transacciones de la forma:

customer_id, fecha y hora [, valor_monetario]

a un DataFrame de la forma:

customer_id, frecuencia, recencia, T [, valor_monetario], frecuencia_prueba [, valor_monetario_prueba], test_T

Tenga en cuenta que esta función excluirá a los nuevos clientes cuyas primeras transacciones ocurrieron durante el período de prueba.

Adaptado de la biblioteca heredada lifetimes: CamDavidsonPilon/lifetimes

Parámetros:
transacciones : DataFrameDataFrame

Un DataFrame de Pandas que contiene customer_id_col y datetime_col.

customer_id_colstr

Columna en el DataFrame transactions que denota el customer_id.

datetime_colstr

Columna en el DataFrame de transacciones que denota las fechas y horas en las que se realizaron las compras.

train_period_end : Union[str, pandas.Period, datetime], opcionalUnión[python:str, pandas.Period, datetime], opcional

Una cadena o fecha y hora para denotar el período de tiempo final para los datos de entrenamiento. Los eventos después de este período de tiempo se utilizan para los datos de prueba.

test_period_end : Union[str, pandas.Period, datetime], opcionalUnión[python:str, pandas.Period, datetime], opcional

Una cadena o fecha y hora para denotar el período 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.

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.

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.

monetary_value_col : str, opcionalpython:str, opcional

Columna en el DataFrame de transacciones que denota el valor monetario de la transacción. Opcional; solo se necesita para modelos de estimación de gastos como el modelo Gamma-Gamma.

include_first_transaction : bool, opcionalbool, opcional

Predeterminado: Falso Para el modelado predictivo de CLV, esto debe ser Falso. Establezca en Verdadero si está realizando segmentación RFM.

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.

Devoluciones:
DataFrame

Dataframe que contiene datos RFM resumidos y columnas de prueba para frecuencia, T y valor_monetario si se especifican.