
$ 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 ])มีความจำเป็นที่จะต้องแปลงคุณสมบัติหมวดหมู่เป็นตัวเลขเนื่องจากอัลกอริทึมการเรียนรู้ของเครื่องทั้งหมดจะตีความค่าตัวเลขเท่านั้นขั้นตอน NEXT เกี่ยวข้องกับการเลือกคุณสมบัติตามความสำคัญของคุณสมบัติตามด้วยการแทนที่ค่าสตริงค่าตัวเลข
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 Neeborest (KNN) โดยใช้โมเดล Sklearn ที่เราติดตั้งในส่วนการติดตั้งข้อกำหนด อัลกอริทึม KNN ถือว่ามีสิ่งที่คล้ายกันอยู่ในบริเวณใกล้เคียง กล่าวอีกนัยหนึ่งสิ่งที่คล้ายกันอยู่ใกล้กัน
def train_model ( evidence , labels ):
model = KNeighborsClassifier ( n_neighbors = 1 )
model . fit ( evidence , labels )
return modelข้อมูลการฝึกอบรมจะถูกใช้เพื่อฝึกอบรมโมเดล KNN (K-Nearest Neighbours) และข้อมูลการทดสอบจะถูกใช้เพื่อตรวจสอบโมเดล มันจะทำนายฉลากสำหรับเวกเตอร์คุณสมบัติที่มองไม่เห็นที่กำหนด
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 สำหรับการจำแนกผู้ใช้ในสองชั้นที่กำหนดไว้ล่วงหน้าเช่นพวกเขาจะทำการซื้อหรือไม่ตามคุณสมบัติเช่นไม่ว่าผู้ใช้จะซื้อของในวันหยุดสุดสัปดาห์สิ่งที่พวกเขาใช้เว็บเบราว์เซอร์