CommuteReliability 通勤可靠度分析
以可解釋的基線統計評估多模式通勤路線的準點與轉乘風險
整合台灣 TDX 公共運輸即時資料的多模式通勤可靠度分析平台。先以可解釋的基線統計(非機器學習)量化公車 ETA 準確度、轉乘失敗風險與路線穩定度,並透過 FastAPI 服務與輕量儀表板提供路線可靠度排名與多段通勤計畫評分,回答「哪條路線最可靠」而非僅是「最快」。
已驗證 Demo 錄影 1
由 portfolio quality pass 從既有專案 demo 素材複製。
媒體總覽
快速瀏覽這個專案的截圖與錄影展示。
專案連結與 Demo 狀態
專案概覽
## 專案概述 CommuteReliability 是一套多模式通勤可靠度分析平台,刻意在 MVP 階段「先做可解釋的基線統計,不引入機器學習」。它整合台灣 TDX 公共運輸開放資料,回答「哪條通勤路線最可靠」這類問題——重點不是最快,而是最穩定、最不容易錯過轉乘。 ## 資料與方法 系統以 TDX 公車客戶端定時擷取路線、站牌與 ETA 快照,存入 SQLite 的時間窗儲存層。由於公開資料通常沒有真實到站時間,專案採用代理法:當估計時間低於設定門檻時判定為到站事件,並在固定回看時間窗內以最接近的快照評估預測準確度。分析層計算 ETA 偏誤與誤差,並以歷史誤差分布估計公車轉乘捷運的轉乘失敗機率。 ## 評分與建議 路線可靠度評分結合 MAE、絕對誤差百分位與絕對偏誤的加權組合,並以樣本量因子在資料不足時自動降低分數。多段通勤計畫再聚合各段的公車可靠度與轉乘成功機率,輸出整體建議。系統也能從起訖座標自動生成 bus_direct、bus_to_bus、bus_to_metro 候選並評分。 ## 工程實作 後端採 FastAPI + Pydantic v2,分為 ingestion / preprocessing / analytics / api 分層架構;所有門檻、時間窗與權重集中於 YAML 設定,支援不重啟熱套用。前端為輕量靜態儀表板,內建控制中心(背景輪詢/快取任務、設定熱更新、命令面板與座標微調)。專案以 Docker 容器化並部署於作品集閘道後。
我的角色
獨立開發者,負責資料擷取、分析方法設計、API 與儀表板的全端實作及容器化部署
問題背景
日常通勤的痛點往往不是平均時間,而是準點度與轉乘銜接的不確定性。一般導航只給最快路線,缺乏對 ETA 偏誤、轉乘失敗機率與路線穩定度的量化與可解釋說明。
解決方案
以 TDX 公車客戶端定時擷取 ETA 快照存入 SQLite 時間窗儲存層,從快照推斷到站事件作為地面真值代理;再以基線統計計算 ETA 偏誤/誤差、以歷史誤差分布估計轉乘失敗機率、並用 MAE 與偏誤加權搭配樣本量因子產生路線可靠度評分,最終聚合成多段通勤計畫分數。所有門檻與權重集中於 YAML 設定,可不重啟熱套用。
目前成果
完成可運行的 MVP 並部署於作品集閘道後;提供公車 ETA 準確度、轉乘風險、路線排名與通勤建議等 API,附帶含控制中心(背景排程、快取狀態、設定熱更新、命令面板)的儀表板,並可從起訖座標自動生成 bus_direct / bus_to_bus / bus_to_metro 候選路線。
作品亮點
- 以 ETA 快照推斷到站事件的代理方法,在缺乏地面真值下仍可評估預測準確度
- 轉乘失敗風險採機率模型,結合步行與月台緩衝時間
- 分層架構(ingestion / preprocessing / analytics / api)將資料擷取、清洗與計分明確解耦
- 所有門檻、時間窗與權重外部化至 YAML,支援 /settings/apply 不重啟熱更新
- 儀表板控制中心整合背景輪詢/快取任務、命令面板(Ctrl/Cmd+K)與座標微調操作
- 以快取站點幾何自動生成多模式通勤候選並批次評分
技術挑戰
- 公共 ETA 資料缺乏真實到站時間,需以快照門檻推斷到站事件作為代理並控制評估誤差
- 多段通勤的可靠度需同時聚合公車準點與轉乘成功機率,且在低樣本時避免過度自信評分
目標使用者
- 作品集審閱者與面試官
- 需要快速理解專案目的、技術棧與成熟度的技術讀者
技術亮點
- 偵測到的主要技術線索:Python, FastAPI, Pydantic v2, httpx, SQLite, PyYAML, Uvicorn, Docker, TDX Open API, Vanilla JS
- 已有 README 作為後續補齊案例研究的依據
- 已連接公開 GitHub repository,可從作品集追溯原始碼
系統架構
此專案目前由 portfolio catalog pipeline 依 README、Git metadata、package/build 設定與素材線索建立案例頁。正式架構說明仍需依實際 source code 補齊;目前可確認的技術線索包含:Python, FastAPI, Pydantic v2, httpx, SQLite, PyYAML, Uvicorn, Docker, TDX Open API, Vanilla JS。
資料流程
目前尚未完成可公開的資料流程說明。若此專案含資料處理、AI pipeline 或後端 API,後續應補上 input、processing、storage、UI/output 的端到端流程。
專案結構
commute-reliability-analysis/ README.md # project documentation, when available source files # implementation reviewed by local audit package/build config # detected capability signals
安裝與執行
This project does not expose a verified runnable web command yet. Review the README/source tree and add exact install, run, test, and build commands before interview use. No verified build command was detected. Treat the current portfolio page as a case-study placeholder until build steps are reviewed.
後續改進
- 補齊正式 README、截圖與 demo recording
- 補上架構圖、資料流程與關鍵技術決策
- 確認 build/test 狀態並更新 portfolio release report
面試說明重點
- 先說明此專案目前的成熟度與可展示範圍
- 聚焦在可驗證的技術棧、程式結構與已完成部分
- 不要宣稱尚未部署、尚未錄影或尚未測試的能力已完成
後續規劃
- 導入服務中斷/誤點訊號與更進階的時間序列建模(目前刻意保持基線、無 ML)
- 加入使用者個人化(步行容忍度、轉乘容忍度)與多城市資料覆蓋