
$ 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>
Exemple :
$ python model.py data/activity_data.csv
Nous avons commencé l'évaluation en chargeant l'ensemble de données d'activité client pour un site Web en utilisant l'argument de la ligne de commande. Pour l'étude, nous avons utilisé un ensemble de données d'activités en ligne client pour un site Web, impliquant des paramètres tels que le type de trafic, la région, la durée liée au produit, le produit, le mois, etc.
if len ( sys . argv ) != 2 :
sys . exit ( "Usage: python shopping.py data" )
evidence , labels = load_data ( sys . argv [ 1 ])Il est nécessaire de convertir les fonctionnalités catégorielles en numériques car tous les algorithmes d'apprentissage automatique interprètent uniquement les valeurs numériques. L'étape du next implique la sélection des fonctionnalités basée sur l'importance des fonctionnalités suivie par le remplacement des valeurs numériques des valeurs de chaîne.
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 )La procédure consiste à prendre un ensemble de données et à les diviser en deux sous-ensembles. Le premier sous-ensemble est utilisé pour s'adapter au modèle et est appelé l'ensemble de données de formation. Le deuxième sous-ensemble n'est pas utilisé pour former le modèle; Au lieu de cela, l'élément d'entrée de l'ensemble de données est fourni au modèle, puis les prédictions sont faites et comparées aux valeurs attendues. Ce deuxième ensemble de données est appelé ensemble de données de test. Et puis nous préparons les données de formation et de test pour le modèle à l'aide de la fonction Train_Test_Split () du module 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
)Ensuite, nous créons le modèle AUR K-Dearest Neighbors (KNN) en utilisant le modèle Sklearn que nous avons installé dans la section d'installation des exigences. L'algorithme KNN suppose que des choses similaires existent à proximité. En d'autres termes, des choses similaires sont proches les unes des autres.
def train_model ( evidence , labels ):
model = KNeighborsClassifier ( n_neighbors = 1 )
model . fit ( evidence , labels )
return modelLes données de formation seront utilisées pour former le modèle KNN (K-Dearest Neighbors). Et les données de test seront utilisées pour valider le modèle. Il prédire les étiquettes pour les vecteurs de caractéristiques invisibles donnés.
model = train_model ( X_train , y_train )
predictions = model . predict ( X_test )Enfin, le modèle est ensuite évalué. L'évaluation du modèle vise à estimer la précision de la généralisation d'un modèle sur les données futures (invisibles / hors échantillon).
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 )Pour l'étude, j'ai utilisé l'ensemble de données d'activités en ligne client pour un site Web, impliquant des paramètres tels que le type de trafic, la région, la durée liée au produit, le produit, le mois, etc.
Contribuant à l'avancement des technologies d'apprentissage automatique, ce projet peut être utile pour le site Web d'achat en ligne qui prospère pour augmenter leur engagement client.
La portée future du projet comprend qu'elle peut être mise en œuvre à plus grande échelle en plus d'autres paramètres d'engagement client tels que le système de messagerie impliquant une baisse de prix dans un article intéressé, etc.
Pendant les achats normaux en ligne, les événements les plus courants qui sont observés que tous les utilisateurs ne finiront pas par acheter des trucs. Généralement, la majorité des visiteurs ne finissent probablement pas par l'achat pendant cette session Web. Il serait donc avantageux pour le site Web AE Commerce de prédire si un utilisateur a l'intention de faire un achat ou non et d'afficher différents contenus et offre en conséquence, quelque chose comme des offres de réduction ou des coupons, etc., si le site Web soupçonne si l'utilisateur n'est pas destiné à terminer l'achat.
Afin de résoudre ce problème, nous procédons en bulding un classificateur K-Dearest pour classer les utilisateurs dans deux cours prédéfinis, c'est-à-dire qu'ils termineront l'achat ou non en fonction de fonctionnalités telles que les utilisateurs qui font leurs achats un week-end, quel navigateur Web ils utilisent, combien de pages ils ont visité, etc.