歡迎來到數據設計的世界!
在我們深入探討複雜的演算法或五彩繽紛的圖表之前,必須先談談預測模型中的「地基」:數據設計 (Data Design)。你可以把數據設計想像成製作料理時選擇食材。即使是世界上最頂尖的主廚(也就是你!),如果用錯了食材,也無法做出一頓五星級大餐。
在本章中,我們將專注於建模前必須作出的三個重大決策:時間範圍 (Time Frame)(事件何時發生?)、粒度 (Granularity)(數據有多細緻?),以及採樣 (Sampling)(我們使用哪些特定數據記錄?)。理解這些概念將助你確保模型既準確,又能切實應用於現實世界。別擔心這些聽起來很專業的術語,我們會把它們拆解成簡單易懂的日常概念。
1. 時間範圍:時機就是一切
在預測分析中,我們通常試圖用過去來預測未來。要做到這一點,我們必須將數據劃分為特定的時間窗口。
觀察期 vs. 表現期
想像你正試圖預測某位駕駛員明年是否會發生車禍。為此,你需要查看他們過去兩年的駕駛記錄。
• 觀察期 (Observation Period):這是我們收集「特徵 (Features)」或預測變數的時間窗口(例如:該駕駛員在 2022 年和 2023 年收到多少張超速罰單?)。
• 表現期 (Performance Period):這是我們觀察結果或「目標變數 (Target)」的時間窗口(例如:他們在 2024 年是否發生了事故?)。
滯後時間 (Lag Time) 的問題
在保險業中,數據並不總是能即時取得,這稱為滯後時間 (Lag Time)。例如,醫生今天看了病人,但保險公司可能要過三週才收到帳單。如果你的模型沒有考慮到這種延遲,你的「當前」數據可能會遺漏重要資訊,導致預測結果失準。
快速複習:請務必確保預測變數與目標變數之間沒有重疊。如果你不小心將「未來」(表現期)的資訊包含在「過去」(觀察期)中,就會造成數據洩漏 (Data Leakage)——這是一個非常常見的錯誤,會讓你的模型看起來比實際表現好得多!
重點總結:設定清晰的時間範圍可確保模型從過去中學習,從而預測一個獨立的未來區間,同時考慮到現實世界中數據報告的延遲。
2. 粒度:找到「縮放級別」
粒度 (Granularity) 是指數據集中單一列所代表的細節程度。你觀察的是單一個人、單一交易,還是一個城市?
高粒度 vs. 低粒度
• 高粒度 (細粒度 - Fine-Grained):這意味著包含大量細節。例如:顧客在雜貨店的每一筆消費記錄。
• 低粒度 (粗粒度 - Coarse-Grained):這意味著數據經過了聚合 (Aggregated)。例如:顧客整年在雜貨店消費的總金額。
該選擇哪一種?
選擇正確的粒度就像相機對焦。如果你拉得太近(高粒度),你可能會看到太多的「雜訊」(Noise)(隨機變異);如果你拉得太遠(低粒度),你可能會遺失重要的規律。
例子:如果你想預測某個保單持有人是否會退保,你需要個人層級 (Individual Level) 的數據。如果你使用州層級 (State Level) 的數據,你或許知道紐約的人是否在退保,但你無法得知 John Smith 是否會退保。
小知識:改變粒度通常涉及聚合。例如,將 365 天的每日氣溫讀數取平均值,得出一個「年平均氣溫」,這樣雖然降低了粒度,但卻讓數據更易於管理。
重點總結:數據的粒度必須與你的商業目標相符。如果你想預測個人行為,你的數據列就必須代表個人!
3. 採樣:選擇正確的群體
有時候數據量過大無法處理,或者我們需要留出一部分數據來測試模型。這時就需要採樣 (Sampling)。樣本是總體數據中的一個子集。
簡單隨機採樣 (Simple Random Sampling)
這就像從帽子裡抽籤,每一筆記錄被選中的機率均等。這很簡單,但有一個弱點:如果你面對的是非常罕見的事件(例如罕見疾病或巨大的保險索賠),隨機樣本可能會完全漏掉這些案例!
分層採樣 (Stratified Sampling)
這是一種「更聰明」的採樣方式。你先將數據分為不同的群組(稱為分層 - Strata),例如年齡或性別,然後從每個群組中進行採樣。這能確保每個群體在最終的數據集中都得到公平的呈現。
比喻:如果你在品嚐一個多層蛋糕,「簡單隨機採樣」可能只讓你挖到一口糖霜;而「分層採樣」則能確保你每一口都能吃到每一層的味道。
訓練集、驗證集與測試集 (Training, Validation, and Test Sets)
在 PA 考試中,你幾乎總是需要將數據拆分為這三個桶:
1. 訓練集 (Training Set):模型用來「學習」規律的數據。
2. 驗證集 (Validation Set):用於「調整」模型參數(就像模擬考),以找出最佳的設定。
3. 測試集 (Test Set):這是「期末考」。我們只有在模型完成後才會看一次,以確認它在全新數據上的表現。
常見錯誤:使用測試集來決定要包含哪些變數。這是在「作弊」!測試集應該保持秘密,直到最後一刻才能使用。
重點總結:採樣能幫助我們管理數據,並確保模型被公平地測試。當我們希望確保罕見但重要的群體被納入分析時,分層採樣特別好用。
章節總結與快速提示
• 時間範圍:保持「過去」(觀察期)與「未來」(表現期)分開。小心滯後時間!
• 粒度:讓你的「縮放級別」與目標保持一致。不要因為過度聚合而隱藏了重要的細節。
• 採樣:一般需求使用隨機採樣,確保小群體被代表時使用分層採樣。永遠記得將數據拆分為訓練集與測試集。
• 數據設計口訣:記住 G.T.S. (Granularity 粒度, Time frame 時間範圍, Sampling 採樣) — 也就是在開始專案前,「Get The Scope」(掌握範圍)!
如果這看起來準備工作很多,別擔心。在預測分析中,80% 的工作通常在於搞定數據設計。一旦你的設計穩固,實際的建模過程就會順暢許多!你可以做到的!