เราต้องการเปรียบเทียบยอดขายของขนมปังในแต่ละวัน โดยเราจะสร้างโมเดล Machine Learning เพื่อพยากรณ์ยอดขายขนมปัง โดยอิงข้อมูลจากยอดขายของ 30 วันแรก
โดยจะเปรียบเทียบโมเดล 2 แบบ คือ
1.Linear Regression
2.DNN (Deep Neural Network)
ขั้นตอนการนำเข้าข้อมูล มีทั้งหมด 8 ขั้นตอน ดังนี้
1.ติดตั้งและนำเข้าไลบรารี
2.สร้างข้อมูลจำลองยอดขายขนมปัง
3.แบ่งข้อมูลเป็น Training และ Testing
4.สร้างโมเดล Neural Network
5.คอมไพล์โมเดล
6.ฝึกโมเดล
7.แสดงกราฟเปรียบเทียบ Linear Regression กับ DNN
8.พยากรณ์ยอดขายในวันที่ 31
ขั้นตอนที่ 1 ติดตั้งและนำเข้าไลบรารี
numpy สร้างข้อมูลตัวเลขของวัน
pandas ใช้จัดเก็บข้อมูลให้อยู่ในรูปแบบตาราง
matplotlib.pyplot ใช้วาดกราฟแสดงผล
tensorflow ใช้สร้างและฝึกโมเดล DNN
ขั้นตอนที่ 2 สร้างข้อมูลจำลองยอดขายขนมปัง
เราสร้างข้อมูลจำลองขึ้นมาสำหรับยอดขายขนมปังในแต่ละวัน และกำหนดว่ายอดขายให้มีแนวโน้มเพิ่มขึ้นเรื่อยๆ ตลอด 30 วัน
ขั้นตอนที่ 3 แบ่งข้อมูลเป็น Training และ Testing
ใช้ train_test_split แบ่งข้อมูลเพื่อฝึกและทดสอบโมเดล
ขั้นตอนที่ 4 สร้างโมเดล Neural Network
เราใช้ Keras สร้างโมเดล DNN แบบ Sequential
ขั้นตอนที่ 5 คอมไพล์โมเดล
กำหนด loss function, optimizer และ metric ที่ใช้วัดผลการฝึกของโมเดล
ขั้นตอนที่ 6 ฝึกโมเดล
เราฝึกโมเดลโดยใช้ข้อมูลที่แบ่งไว้ พร้อมใช้ EarlyStopping เพื่อหยุดฝึกอัตโนมัติหาก validation loss ไม่ดีขึ้นเพื่อลดการ overfitting
ขั้นตอนที่ 7: แสดงกราฟเปรียบเทียบ Linear Regression กับ DNN

วาดกราฟเปรียบเทียบโมเดลทั้งสองแบบ
- จุดสีแดง คือ ยอดขายจริง
- เส้นประสีน้ำเงิน คือ Linear Regression พยากรณ์ยอดขายแบบเส้นตรง
- เส้นประสีเขียว คือ DNN Prediction จากโมเดล Neural Network

ตารางเปรียบเทียบค่าจริง (Actual Sales) กับค่าที่โมเดล Linear Regression และ DNN
8.พยากรณ์ยอดขายในวันที่ 31
![]()
จากผลการพยากรณ์ยอดขายในวันที่ 31 พบว่า Linear Regression ทำนายได้ใกล้เคียงกับแนวโน้มยอดขายที่เพิ่มขึ้นมากกว่า โดยให้ค่าประมาณ 112.97 ชิ้น แต่ DNN ทำนายเพียง 34.47 ชิ้น ซึ่งต่ำกว่าความเป็นจริง
ต่อไปเราจะสร้างตัวอย่างข้อมูลใหม่ที่แตกต่างจากเดิม
ยอดขายเติบโตช้าในช่วงต้น (วัน 1–15) และเพิ่มขึ้นอย่างรวดเร็วในช่วงหลัง (วัน 16–30)
เพื่อทดสอบว่า Linear Regression หรือ TensorFlow DNN จะสามารถเรียนรู้แนวโน้มที่เปลี่ยนแปลงนี้ได้แม่นยำมากกว่ากัน
ขั้นตอนที่ 1 ติดตั้งและนำเข้าไลบรารี
นำเข้าไลบรารีที่จำเป็นสำหรับการจัดการข้อมูล (Pandas, Numpy), การวาดกราฟ (Matplotlib), การสร้างโมเดล (TensorFlow, Keras)และการใช้โมเดลพื้นฐานจาก scikit-learn
ขั้นตอนที่ 2 สร้างข้อมูลจำลองแบบ โตช้า-โตเร็ว
จำลองข้อมูลยอดขายที่โตช้าในช่วงแรก ในวันที่ 1-15 และโตเร็วในช่วงหลังวันที่ 16-30 เพื่อทดสอบว่าโมเดลจะจับความเปลี่ยนแปลงนี้ได้ไหม

ยอดขายจำลองในช่วงวันแรกๆ ในช่วงวันที่ 1–5
ขั้นตอนที่ 3 แบ่งข้อมูล Training และ Testing
แบ่งข้อมูลเป็นส่วนที่ใช้สำหรับฝึกโมเดลและทดสอบด้วยฟังก์ชัน train_test_split
ขั้นตอนที่ 4 สร้างโมเดล Neural Network
สร้างโมเดล Sequential ที่มี 2 ชั้น ใช้ activation function เป็น ReLU เพื่อช่วยให้โมเดลเรียนรู้ข้อมูลเชิงเส้นของข้อมูลได้
ขั้นตอนที่ 5: คอมไพล์โมเดล
กำหนด loss function เป็น mean squared error (MSE)ให้optimizer เป็น Adam และ metric ที่ใช้ประเมินผลเป็น mean absolute error (MAE)
ขั้นตอนที่ 6: ฝึกโมเดล
ฝึกโมเดลด้วยข้อมูล training และใช้ EarlyStopping หยุดการฝึกหาก validation loss ไม่ลดลงต่อเนื่อง 3 รอบ
outputที่ได้
ขั้นตอนที่ 7: แสดงกราฟเปรียบเทียบ Linear Regression กับ DNN
- Actual Sales จุดสีแดง คือ ข้อมูลจริงจากชุดทดสอบ
- Linear Regression เส้นประสีน้ำเงิน คือ โมเดลเส้นตรงที่พยายามจับแนวโน้ม
- DNN Prediction คือ ผลจากโมเดล Neural Network
เราสามารถดูความแม่นยำได้ด้วยค่า MSE ซึ่งเป็นค่าที่เอาไว้ดูว่าผลการทำนายของโมเดล ยิ่งค่า MSE ต่ำก็แปลว่าโมเดลทำนายได้แม่นยำมากขึ้น
จากการทดลองครั้งนี้พบว่า Linear Regression ให้ค่า MSE ต่ำกว่า DNN อย่างชัดเจน โดยเฉพาะกับข้อมูลที่มีแนวโน้มเป็นเส้นตรง
8.พยากรณ์ยอดขายในวันที่ 31
ใช้โมเดล DNN ที่ฝึกเสร็จมาพยากรณ์ยอดขายในวันถัดไปจากข้อมูลที่ไม่มีใน dataset
outputที่ได้
![]()
จากผลการพยากรณ์ยอดขายในวันที่ 31 พบว่า Linear Regression ทำนายได้ 175.94ชิ้น ซึ่งสอดคล้องกับแนวโน้มที่เพิ่มขึ้นของข้อมูล ในขณะที่ DNN ทำนายได้เพียง 19.27ชิ้น แสดงให้เห็นว่า DNN ยังไม่สามารถเข้าใจแนวโน้มการเติบโตแบบพุ่งสูงในช่วงท้ายได้
สรุปเนื้อหา
จากผลการเปรียบเทียบพบว่า Linear Regression สามารถพยากรณ์แนวโน้มยอดขายขนมปังได้แม่นยำกว่า DNN เนื่องจากโมเดลเส้นตรงสามารถจับภาพรวมของแนวโน้มข้อมูลที่เติบโตแบบค่อยเป็นค่อยไปในช่วงต้น และพุ่งสูงในช่วงท้ายได้ดีกว่า แม้จะไม่สามารถเรียนรู้ลักษณะโค้งของข้อมูลได้อย่างละเอียด
ขณะที่ DNN ซึ่งออกแบบด้วยโครงสร้างแบบง่ายและฝึกเพียงไม่กี่ epoch กลับพยากรณ์ต่ำเกินจริงตลอดช่วง โดยเฉพาะช่วงที่ยอดขายเพิ่มขึ้นรวดเร็วในวันท้ายๆ ซึ่งแสดงให้เห็นว่าโมเดลยังไม่ซับซ้อนหรือฝึกมาเพียงพอที่จะเข้าใจรูปแบบข้อมูลที่มีการเปลี่ยนแปลงเฉียบพลัน
การทดลองนี้ทำให้เราเข้าใจว่า เวลาเลือกใช้โมเดล Machine Learning ไม่จำเป็นต้องเลือกแบบที่ซับซ้อนที่สุดเสมอไป เพราะบางครั้งโมเดลง่ายๆ อย่าง Linear Regression ก็อาจให้ผลลัพธ์ที่ดีกว่า ขึ้นอยู่กับว่าโมเดลนั้นเหมาะกับลักษณะของข้อมูลและปัญหาที่เราต้องการแก้แค่ไหน
















SOCIAL SHARE CARD GENERATOR