วันนี้ผมจะพาทดลองเขียน Python เพื่อหา Sales forecast หรือการพยากรณ์ยอดขาย ด้วยการใช้ Library ที่ชื่อว่า PyCaret ซึ่งเป็น Low-Code machine learning library ที่เค้าบอกว่าลดการเขียนโค้ดให้สั้นลงเหลือเพียงไม่กี่บรรทัด ไปดูกันเลยครับ
PyCaret คืออะไร?
PyCaret คือ Machine Learning Library ที่สามารถนำมาใช้กับภาษา Python มีคุณสมบัติช่วยให้เราสามารถและ Train Machine Learning โมเดล ได้อย่างรวดเร็วและง่ายดาย PyCaret ถือว่าเป็น low-code machine learning library ที่ช่วยให้การสร้าง Machine Learning model สามารถทำได้ในไม่กี่ขั้นตอน ย่อโค้ดจากโค้ดหลายร้อยบรรทัดให้เหลือเพียงไม่กี่บรรทัดได้อยางรวดเร็ว วันนี้เราจะมาลองใช้งานกันดูครับ
ขั้นตอนที่ 1: ติดตั้ง Pycaret และโหลดข้อมูล
PyCaret สามารถติดตั้งได้โดยใช้ pip package manager ในการติดตั้ง PyCaret เพียงพิมพ์คำสั่งต่อไปนี้
pip install pycaret
Import Library
Import Library ที่จำเป็นในการใช้งาน
Load data
นำเข้าข้อมูล โดย PyCaret สามารถใช้งานร่วมกับ Pandas DataFrame ได้ โดยเราจะใช้ข้อมูล Online Retail จาก UCI นะครับ
Explore the data
ลองสร้าง Chart จากข้อมูลกันดูหน่อย
ขั้นตอนที่ 2: เตรียมข้อมูลและการ Train model
สร้างข้อมูลเพื่อใช้ในการ Train model โดยสร้างจาก วันที่ เดือน ไตรมาส วันทำการ สัปดาห์ เพื่อใช้ในการทำ Forecast
สร้าง Train, Test dataset
สร้าง Train, test data set โดยใช้หลักการ 70/30
Train the model
Train model จากข้อมูล Test dataset
Parameter Tuning
จาก Model ทั้งหมดที่ PyCaret ทำการ Trend model ตัวที่ผลลัพธ์จากการใช้ MAE ในการวัดผล ออกมาดีที่สุดคือ
- Huber Regressor (huber)
- Gradient Boosting Regressor (gbr)
- Random Forest Regressor (rf)
ขั้นตอนที่ 3: Predict data
นำ Model ที่ได้มา predict ข้อมูล Test dataset
ขั้นตอนที่ 4: Predict ข้อมูลในอนาคต
นำ model มา predict ข้อมูลในอนาคต
บทสรุป
โดยสรุป การใช้ PyCaret สำหรับการคาดการณ์ยอดขายสามารถเป็นเครื่องมือที่มีประโยชน์ ที่ีรวบรวม Library และ Algorithm ของ Machine Learning มาช่วยสร้าง model และ เทียบ output ได้ง่าย สามารถลดโค้ดในการเขียนโปรแกรมลงได้เยอะ แม้ว่าผลลัพธ์ของ PyCaret อาจจะยังไม่สมบูรณ์แบบ แต่ก็เหมาะกับโครงการที่ต้องการความรวดเร็วในการวิเคราะห์ เพื่อหา Key trend คร่าวๆ ของข้อมูลได้
สำหรับใครที่อยากเข้าไปดู ตัวอย่าง code สามารถเข้าไปดูได้ที่ GitHub ของผมได้เลยนะครับ
Reference: