HealthyLife Analytics · Independent Study

การพัฒนาระบบวิเคราะห์และพยากรณ์
ข้อมูลยอดขายด้วย Python

Development of a Sales Data Analysis and Forecasting System Using Python
Linear Regression · Random Forest · ARIMA · FastAPI · React
บทคัดย่อ

ภาพรวมโครงงาน

ระบบ Web Application วิเคราะห์และพยากรณ์ยอดขาย ใช้ React + TypeScript (Frontend) และ Python + FastAPI (Backend) จัดการข้อมูลด้วย Pandas/NumPy และพยากรณ์ด้วย 3 โมเดล พร้อมประเมินด้วย MAE, RMSE, MAPE

3 โมเดล

Linear Regression, Random Forest, ARIMA

Dashboard

ยอดขายรวม, สินค้าขายดี, แนวโน้ม, ยอดพยากรณ์

AI Insights

ข้อมูลเชิงธุรกิจสนับสนุนการตัดสินใจ

คำสำคัญ: การวิเคราะห์ยอดขาย · การพยากรณ์ยอดขาย · Machine Learning · Python

1. บทนำ

ความเป็นมา ปัญหา วัตถุประสงค์ ขอบเขต

ความเป็นมา / ปัญหา

การวิเคราะห์แบบแมนนวลใช้เวลานาน และดูข้อมูลย้อนหลังอย่างเดียวไม่บอกแนวโน้มอนาคตได้

  • วิเคราะห์ข้อมูลจำนวนมากด้วยตนเองช้า
  • เปรียบเทียบโมเดลต้องคำนวณหลายขั้นตอน
  • ข้อมูลเข้าใจยากหากไม่มีกราฟ/Dashboard

วัตถุประสงค์ / ขอบเขต

  • พัฒนาระบบจัดการและวิเคราะห์ข้อมูลยอดขาย
  • พัฒนาโมเดลพยากรณ์และเปรียบเทียบ 3 แบบ
  • พัฒนา Dashboard แสดงผลวิเคราะห์และพยากรณ์
  • พัฒนาระบบเพื่อแสดงผลให้เข้าใจง่ายและสนับสนุนการตัดสินใจทางธุรกิจ
2. แนวคิดและหลักการ

การเตรียมข้อมูลและโมเดลพยากรณ์

1ข้อมูลยอดขาย
2ตรวจสอบ / แปลงวันที่
3รวมยอดขายตามวัน
4เรียงตามเวลา
5ชุดข้อมูลพยากรณ์

Linear Regression

ศึกษาความสัมพันธ์เชิงเส้นเพื่อหาแนวโน้ม

Random Forest

รวมผล Decision Tree หลายต้น ใช้ลำดับเวลา+วันในสัปดาห์

ARIMA

วิเคราะห์ Time Series ตามลำดับเวลา

ตัวชี้วัด: MAE (คลาดเคลื่อนเฉลี่ย) · RMSE (ให้น้ำหนักความผิดพลาดสูง) · MAPE (คลาดเคลื่อนแบบ %)

3. ภาพรวมระบบ

ขั้นตอนการทำงานและฟังก์ชันหลัก

กระบวนการทำงาน (แนวตรงตามลำดับ)

1ข้อมูลยอดขายเก่า
2เตรียม / วิเคราะห์ข้อมูล
3สร้างโมเดล: LR / RF / ARIMA
4พยากรณ์ยอดขาย
5ประเมินผล MAE / RMSE / MAPE
6สร้าง AI Insights
7แสดงผลบน Dashboard

Dashboard

ยอดขายรวม คำสั่งซื้อ สินค้า แนวโน้ม

Sales Forecast

พยากรณ์ยอดขายด้วย 3 โมเดล

Product Analysis

วิเคราะห์สินค้าขายดี

AI Insights / Reports

สรุปเชิงธุรกิจและรายงาน

4. เทคโนโลยี & 5. สถาปัตยกรรม

เครื่องมือที่ใช้และโครงสร้างระบบ

Tools & Environment

Frontend: React, TypeScript, Tailwind CSS, Recharts

Backend: Python, FastAPI, Uvicorn

ML/Data: Pandas, NumPy, Scikit-learn, Statsmodels

Database: SQLite, Supabase PostgreSQL

Dev: VS Code, Git/GitHub, Terminal

Architecture

1User
2React + TS Dashboard
3FastAPI Backend
4Pandas + NumPy
5ML: LR / RF / ARIMA
6SQLite / PostgreSQL
6–7. การติดตั้งและพัฒนา

Setup + โค้ดสำคัญ

Environment

python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --reload

เตรียมข้อมูล + รวมยอดขายตามวัน

df["sale_date"] = pd.to_datetime(df["sale_date"])
ts = (df.groupby("sale_date")["total_amount"]
      .sum().sort_index()
      .asfreq("D", fill_value=0))

Linear Regression

model = LinearRegression().fit(
  np.arange(len(train)).reshape(-1,1), train.values)
test_pred = model.predict(...)

ARIMA + ประเมินผล

fit = ARIMA(train, order=(2,1,2)).fit()
test_pred = fit.forecast(len(test))
mae = mean_absolute_error(actual, test_pred)
8–9. ทดสอบและแก้ไขปัญหา

Test Case และ Troubleshooting

Test CaseInputExpected Output
Dashboardเลือกช่วงข้อมูลแสดงข้อมูลยอดขายและกราฟ
Sales Forecastเลือกโมเดล/ระยะเวลาแสดงผลการพยากรณ์
Model Evaluationข้อมูล Testแสดง MAE, RMSE, MAPE

เงื่อนไข: ต้องมีข้อมูลยอดขายอย่างน้อย 30 วันจึงจะ Forecast ได้

ปัญหาสาเหตุวิธีแก้ไข
Forecast ไม่ทำงานข้อมูลไม่ถึง 30 วันเพิ่มข้อมูลยอดขาย
ARIMA เกิด Errorรูปแบบข้อมูลไม่เหมาะสมตรวจสอบข้อมูล Time Series
Frontend เรียก Backend ไม่ได้API URL/CORS ผิดตรวจสอบ Configuration
Sales Forecast — หน้าจอระบบจริง

เปรียบเทียบผลพยากรณ์จาก 3 โมเดล

Linear Regression

Linear Regression forecast screenshot

Random Forest

Random Forest forecast screenshot

ARIMA

ARIMA forecast screenshot

หน้าจอ AI Sales Forecast แสดงผลพยากรณ์ 30 วัน พร้อมค่า MAE, RMSE, MAPE และ AI Business Insights ของแต่ละโมเดล

10. ผลการดำเนินงาน

ผลลัพธ์บน Dashboard

หน้าจอ Sales Forecast (Linear Regression)

Linear Regression forecast screenshot
฿2,698
MAE
฿6,266
RMSE
14.48%
MAPE
฿376,618
Forecast Next Month

ข้อมูลเชิงธุรกิจ (AI Business Insights)

  • ยอดขายมีแนวโน้มเพิ่มขึ้นประมาณ 0.4% ใน 30 วันถัดไป
  • Plant Protein Powder เป็นสินค้าที่มียอดขายสูงที่สุด
  • ยอดขายช่วงสุดสัปดาห์สูงกว่าวันธรรมดา จึงควรปรับแผนสต็อกและแคมเปญให้เหมาะสม
  • ควรเตรียมสินค้า Plant Protein Powder เพิ่มตามแนวโน้มความต้องการ
11–12. สรุปและเอกสารอ้างอิง

บทสรุปโครงงาน

สรุปผล

ระบบพัฒนา Sales Forecast เป็นฟังก์ชันหลัก นำข้อมูลผ่านการเตรียม วิเคราะห์ สร้างแบบจำลอง 3 แบบ ประเมินด้วย MAE/RMSE/MAPE และแสดงผลผ่าน Dashboard พร้อม AI Insights

แนวทางพัฒนาต่อ: Deep Learning (LSTM), ปัจจัยโปรโมชัน/เทศกาล, พยากรณ์รายสินค้า, แนะนำจัดสต็อกอัตโนมัติ

เอกสารอ้างอิง

  • Python Software Foundation, Python Documentation
  • McKinney, W., Python for Data Analysis
  • Scikit-learn / Statsmodels Documentation
  • Hyndman & Athanasopoulos, Forecasting: Principles and Practice
  • FastAPI / React Documentation