
$ 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>
مثال :
$ python model.py data/activity_data.csv
بدأنا التقييم عن طريق تحميل مجموعة بيانات نشاط العميل لموقع ويب باستخدام وسيطة سطر الأوامر. بالنسبة للدراسة ، استخدمنا مجموعة بيانات النشاط عبر الإنترنت للعملاء لموقع ويب ، والتي تتضمن معلمات مثل نوع المرور ، والمنطقة ، والمدة المتعلقة بالمنتج ، والشهر ، وما إلى ذلك ، إلخ.
if len ( sys . argv ) != 2 :
sys . exit ( "Usage: python shopping.py data" )
evidence , labels = load_data ( sys . argv [ 1 ])من الضروري تحويل الميزات الفئوية إلى عددية لأن جميع خوارزميات تعلم الآلة تفسر فقط القيم الرقمية. الخطوة العصرية تتضمن اختيار الميزات بناءً على أهمية الميزة متبوعة باستبدال القيم العددية لقيم السلسلة.
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 )يتضمن الإجراء أخذ مجموعة بيانات وتقسيمها إلى مجموعتين فرعيتين. يتم استخدام المجموعة الفرعية الأولى لتناسب النموذج ويشار إليها باسم مجموعة بيانات التدريب. لم يتم استخدام المجموعة الفرعية الثانية لتدريب النموذج ؛ بدلاً من ذلك ، يتم توفير عنصر الإدخال في مجموعة البيانات للنموذج ، ثم يتم إجراء التنبؤات ومقارنتها بالقيم المتوقعة. يشار إلى مجموعة البيانات الثانية هذه باسم مجموعة بيانات الاختبار. ثم نقوم بإعداد بيانات التدريب واختبار النموذج باستخدام وظيفة Train_Test_Split () من وحدة 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
)ثم نقوم بإنشاء نموذج AUR K-Nearest Neighbors (KNN) باستخدام نموذج Sklearn الذي قمنا بتثبيته في قسم تثبيت المتطلبات. تفترض خوارزمية KNN أن هناك أشياء مماثلة على مقربة. بمعنى آخر ، أشياء مماثلة قريبة من بعضها البعض.
def train_model ( evidence , labels ):
model = KNeighborsClassifier ( n_neighbors = 1 )
model . fit ( evidence , labels )
return modelسيتم استخدام بيانات التدريب لتدريب نموذج KNN (K-Nearest Neighbors). وسيتم استخدام بيانات الاختبار للتحقق من صحة النموذج. وسوف تتنبأ بتسميات متجهات ميزة غير مرئية.
model = train_model ( X_train , y_train )
predictions = model . predict ( X_test )أخيرًا ، يتم تقييم النموذج. يهدف تقييم النموذج إلى تقدير دقة التعميم للنموذج على بيانات المستقبل (غير المرئي/خارج العينة).
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 )بالنسبة للدراسة ، استخدمت مجموعة بيانات النشاط عبر الإنترنت لموقع ويب ، والتي تتضمن معلمات مثل نوع المرور ، والمنطقة ، والمدة المتعلقة بالمنتج ، والشهر ، وما إلى ذلك.
بالمساهمة في تقدم تقنيات التعلم الآلي ، قد يكون هذا المشروع مفيدًا لموقع التسوق عبر الإنترنت الذي يزدهر لزيادة مشاركة العملاء.
يتضمن النطاق المستقبلي للمشروع أنه يمكن تنفيذه على نطاق أوسع بالإضافة إلى معلمات مشاركة العملاء الأخرى مثل نظام المراسلة الذي يتضمن انخفاض الأسعار بشكل خاص عن عنصر مهتم ، وما إلى ذلك.
أثناء التسوق العادي عبر الإنترنت ، فإن الحدوث الأكثر شيوعًا الذي لوحظ أنه لن ينتهي كل المستخدمين بشراء بعض المواد. بشكل عام ، من المحتمل أن لا ينتهي غالبية الزوار بالشراء خلال جلسة الويب هذه. لذلك سيكون من المفيد لموقع AE Commerce التنبؤ ما إذا كان المستخدم يعتزم إجراء عملية شراء أو لا يعرض محتويات مختلفة وعروض وفقًا لذلك ، شيء مثل عروض الخصم أو القسائم ، إلخ ، إذا كان موقع الويب يشتبه إذا لم يكن المستخدم هو إكمال عملية الشراء.
من أجل حل هذه المشكلة ، نمتلك من خلال انتفاخ مصنف K-nearest لتصنيف المستخدمين في فئة محددة مسبقًا على سبيل المثال ، ما إذا كانوا سيكملون الشراء أم لا استنادًا إلى ميزات مثل ما إذا كان المستخدمون يتسوقون في عطلة نهاية الأسبوع ، وما هي متصفح الويب الذي يستخدمونه ، وعدد الصفحات التي قاموا بزيارتها ، إلخ.