Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

NYC Taxi Trip Duration Predictor

Ứng dụng máy học trọn vòng đời: xử lý dữ liệu taxi NYC bằng Apache Spark, huấn luyện Linear Regression, RandomForest và Spark XGBoost, rồi phục vụ dự đoán realtime qua FastAPI + React (Leaflet). Mục tiêu: mô hình chính xác, UI thân thiện, chạy được ngay bằng một lệnh.

Điểm chính

  • Xử lý dữ liệu lớn: Spark đọc/làm sạch 1.5M trips, log-transform trip_duration → log_duration.
  • Pipeline ML: Linear Regression (baseline), RandomForest (tuned nhỏ), SparkXGBRegressor (tốt nhất, tree_method=hist, num_workers=1).
  • Đánh giá: RMSLE/RMSE; metrics và đường dẫn model lưu tại models/model_metadata.json.
  • Giao diện: React + Leaflet chọn điểm đón/trả trên bản đồ, nhận dự đoán tức thì.
  • Đóng gói: Docker Compose; có runner một lệnh cho end-user.

Tech stack

  • Ngôn ngữ: Python 3.10+, Node 18
  • ML: PySpark MLlib, xgboost.spark
  • Backend: FastAPI, Uvicorn
  • Frontend: React, Vite, Leaflet, MUI
  • Triển khai: Docker, Docker Compose

Chạy nhanh (1 lệnh)

  • Linux/macOS: bash run_app.sh
  • Windows: double-click run_app.bat (hoặc chạy trong PowerShell/cmd)

Script sẽ:

  1. Ưu tiên Docker Compose (docker compose up --build -d).
  2. Chờ backend (8000) và frontend (3000) sẵn sàng; nếu lỗi sẽ in log.
  3. Tự mở UI tại http://localhost:3000.
  4. Dừng dịch vụ: docker compose down.

Yêu cầu

  • Docker Desktop (khuyến nghị) hoặc Python 3.10 + Node 18 nếu chạy local fallback.
  • Dataset đã được xử lý sẵn; mô hình đã train nằm trong models/.

Cấu trúc chính

  • app/backend/ FastAPI + tải model Spark pipeline
  • app/frontend/ React + Leaflet UI
  • models/ Mô hình đã huấn luyện (rf_tuned, xgb_spark_tuned, model_metadata.json)
  • notebooks/ Quy trình phân tích/huấn luyện chi tiết
  • .github/ Ghi chú kỹ thuật, báo cáo tối ưu

Mẹo xử lý sự cố

  • Frontend không lên: docker compose logs frontend --tail=80
  • Backend không lên: docker compose logs backend --tail=80
  • Dừng toàn bộ: docker compose down

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages