
$ git clone https://github.com/krvaibhaw/Customer-Purchase-Predection.git
$ cd Customer-Purchase-Predection
$ pip install requirements.txt
$ python model.py <data folder path>/<file.csv>
Ejemplo :
$ python model.py data/activity_data.csv
Comenzamos la evaluación cargando el conjunto de datos de actividad del cliente para un sitio web utilizando el argumento de la línea de comandos. Para el estudio, hemos utilizado el conjunto de datos de actividades en línea de los clientes para un sitio web, que involucra parámetros como el tipo de tráfico, región, duración relacionada con el producto, productos relacionados, mes, etc.
if len ( sys . argv ) != 2 :
sys . exit ( "Usage: python shopping.py data" )
evidence , labels = load_data ( sys . argv [ 1 ])Es necesario convertir las características categóricas en numéricos porque todos los algoritmos de aprendizaje automático interpretan solo valores numéricos. El paso de NEXT implica la selección de características basada en la importancia de la característica seguido de reemplazar los valores de cadena valores numéricos.
month_index = dict ( Jan = 0 , Feb = 1 , Mar = 2 , Apr = 3 , May = 4 , June = 5 ,
Jul = 6 , Aug = 7 , Sep = 8 , Oct = 9 , Nov = 10 , Dec = 11 )
( month_index [ row [ "Month" ]],
1 if row [ "VisitorType" ] == "Returning_Visitor" else 0 ,
1 if row [ "Weekend" ] == "TRUE" else 0 )
labels . append ( 1 if row [ "Revenue" ] == "TRUE" else 0 )El procedimiento implica tomar un conjunto de datos y dividirlo en dos subconjuntos. El primer subconjunto se utiliza para adaptarse al modelo y se conoce como el conjunto de datos de entrenamiento. El segundo subconjunto no se usa para entrenar el modelo; En cambio, el elemento de entrada del conjunto de datos se proporciona al modelo, luego se realizan predicciones y se comparan con los valores esperados. Este segundo conjunto de datos se conoce como el conjunto de datos de prueba. Y luego preparamos los datos de entrenamiento y prueba para el modelo utilizando la función Train_test_split () desde el módulo Sklearn.
from sklearn . model_selection import train_test_split
X_train , X_test , y_train , y_test = train_test_split (
evidence , labels , test_size = TEST_SIZE
)Luego creamos el modelo AUR K-Nearsest Neighbours (KNN) utilizando el modelo Sklearn que hemos instalado en la sección de instalación de requisitos. El algoritmo KNN supone que existen cosas similares muy cerca. En otras palabras, cosas similares están cerca entre sí.
def train_model ( evidence , labels ):
model = KNeighborsClassifier ( n_neighbors = 1 )
model . fit ( evidence , labels )
return modelLos datos de entrenamiento se utilizarán para entrenar el modelo KNN (K-Nears más vecinos). Y los datos de prueba se utilizarán para validar el modelo. Predecirá las etiquetas para los vectores de características invisibles dados.
model = train_model ( X_train , y_train )
predictions = model . predict ( X_test )Finalmente, el modelo se evalúa. La evaluación del modelo tiene como objetivo estimar la precisión de generalización de un modelo en datos futuros (invisibles/fuera de muestra).
sensitivity , specificity = evaluate ( y_test , predictions )
# Displaying the results
print ( f"Correct: { ( y_test == predictions ). sum () } " )
print ( f"Incorrect: { ( y_test != predictions ). sum () } " )
print ( f"True Positive Rate: { 100 * sensitivity :.2f } %" )
print ( f"True Negative Rate: { 100 * specificity :.2f } %" )
# Displaying the classification report for model evaluation
print ( " n Classification Report n " )
print ( classification_report ( y_test , predictions ))
print ( "Accuracy : " , accuracy_score ( y_test , predictions ) * 100 )Para el estudio, he utilizado el conjunto de datos de actividades en línea del cliente para un sitio web, que involucra parámetros como el tipo de tráfico, región, duración relacionada con el producto, productos relacionados, mes, etc.
Contribuyendo al avance de las tecnologías de aprendizaje automático, este proyecto puede ser útil para el sitio web de compras en línea que están prosperando para aumentar su participación en el cliente.
El alcance futuro del proyecto incluye que se puede implementar a mayor escala además de otros parámetros de participación del cliente, como el sistema de mensajería que involucra la caída de precios en un elemento interesado particular, etc.
Durante las compras normales en línea, la ocurrencia más común que se observa que no todos los usuarios terminarán comprando algunas cosas. En general, la mayoría de los visitantes probablemente no terminen pasando por la compra durante esa sesión web. Por lo tanto, sería beneficioso para el sitio web de AE Commerce predecir si un usuario tiene la intención de realizar una compra o no y mostrar diferentes contenidos y ofertas en consecuencia, algo como ofertas de descuento o cupones, etc., si el sitio web sospecha si el usuario no está destinado a completar la compra.
Para resolver este problema, procedemos volando un clasificador K-Near más para clasificar a los usuarios en dos clases predefinidas, IE, ya sea que completarán la compra o no en función de funciones como si los usuarios están comprando en un fin de semana, qué navegador web están usando, cuántas páginas han visitado, etc.