返回作品列表

機票價格預測模型

程式設計開發
  • 作者

    吳孟翰

  • 作品簡介 本專題是透過爬蟲技術,並結合資料分析與機器學習模型,來預測未來某個出發日期的票價區間,試圖解決一個許多人的疑問:「到底什麼時候買機票才會比較划算?」
  • 課程名稱 AI人工智慧工程師 Python視覺辨識與機器學習

【作品介紹】

本專題是透過爬蟲技術蒐集「易遊網」上的機票資料,並結合資料分析與機器學習模型,來預測未來某個出發日期的票價區間,試圖解決一個許多人的疑問:「到底什麼時候買機票才會比較划算?」

起初也只是抱著一種好奇的心態出發,機器學習模型是否真的能夠在「給足夠資料」的前提下,預測出每天不斷變動的機票價格。沒想到在實作過程中,隨著一個個問題的解決與模型成績的逐步改善,我的心態也產生了轉變,這不再只是一次單純的嘗試,而是一個真正可能有機會幫助人作出更聰明決策的機器學習模型。



本次專題,從資料爬蟲、清洗到建模,每一步都有遇到不同的問題。
● 資料抓取與網站限制:由於「易遊網」的網頁架構是以 JavaScript 動態渲染為主,因此無法透過 requests 等傳統方式直接取得資料。
最終我改採 Selenium 搭配瀏覽器模擬操作來進行資料爬取。
然而,這也帶來一個新問題:網站資料載入速度不一,若過早存取會抓不到價格資訊。
為了解決這點,我加入了適當的 sleep 時間與等待條件判斷,確保頁面完全載入後再進行資料擷取,才能順利取得完整且正確的票價資訊。
● 資料整合與預處理:由於機票價格的波動,即使是同一航班,不同的查詢日也可能呈現出不同的價格。
為了分析這種變化趨勢,我必須將每天爬取的資料整合起來,並將同一班機在不同搜尋日的價格資料提取分隔出來,才能進行後續分析,
例如價格趨勢圖或何時買的推估。這個過程中也遇到極端價格,
因此花了時間進行資料標準化與異常值過濾,確保模型能建立在相對穩定且有意義的數據基礎上。
● 模型表現不佳:在建模初期,我先嘗試使用課程所學的線性回歸模型,但由於票價本身呈現非線性,R² 值始終無法突破 0.3,
預測效果可說是不理想。之後我轉向使用樹狀模型,並搭配數據對數轉換、航班特徵強化,
最終成功提升模型表現,R² 值可達實用水準,預測誤差大幅降低。

【心得分享】

我其實並非來自資訊或數據相關的背景,甚至可以說與這個領域毫不相關。作為一位「跨領域的業餘學習者」,
會選擇 Python 與機器學習課程,也完全是出於對新知的興趣,
加上我覺得資料科學與人工智慧已逐漸成為未來社會的重要趨勢,因此想提早了解它的本質。
有趣的是,雖然課程中涉及對我來說新的理論與實作內容,但我並沒有因此感到壓力,
反而是對每一個新的概念、技術充滿了好奇與驚喜。透過這門課,我不僅學會了如何閱讀程式碼與理解模型邏輯,
也讓我感受到,即使起點不同,只要願意投入時間與思考,每個人都可以踏入這個領域,找到屬於自己的切入點與價值。

all_gotop_btn