AI 方法論知識地圖 · 模型開發

資料切分

Train/Val/Test、CV

在互動地圖中開啟 回AI 方法論知識地圖

觀念教學

模型的成績單可不可信,取決於考卷怎麼出 — 資料切分就是出考卷的學問。

核心觀念

資料切分(Data Splitting)把資料分三份:訓練集用於學習、驗證集用於調參、測試集只在最後評估用一次。交叉驗證(Cross-Validation, CV)輪流把每一折當驗證集,能更穩定地估計模型表現。鐵律:特徵工程需在切分之後進行,避免資料洩漏(Data Leakage)

白話理解

訓練集是課本、驗證集是模擬考、測試集是聯考 — 聯考題若先流出,分數再高都是假象。最隱蔽的流出方式,是「用全部資料算標準化參數再切分」:測試集的統計資訊已經滲進了訓練。

切分的三個坑

  • 時間序列不能隨機切:標準 k-fold 會打亂時間順序,讓模型「用未來預測過去」,離線分數漂亮、上線誤差爆炸 → 改用時間序列切分(以過去預測未來的滾動視窗)
  • 不平衡資料要分層:詐騙、瑕疵這類稀有正類,用分層抽樣(Stratified Sampling)確保每折類別比例一致,比例推估才準
  • 相關樣本要同邊:同一使用者、相鄰時段的樣本高度相關,得整組切在同一側,否則變相洩漏
🎯 口訣:訓練學、驗證調、測試只考一次;資料有時間,就照時間切。

iPAS 考點

兩個真題方向:能源公司用每小時用電資料跑 5-fold 交叉驗證、上線誤差偏高 → 根本問題是標準 k-fold 隨機切分打亂時間順序,模型偷看未來,評估過度樂觀;金融詐騙資料有明顯時間序列相關性、要改善詐騙比例推估與穩健性 → 往分層抽樣加上時間感知的切分與驗證方向選。判斷關鍵字:看到「時間序列」先檢查切分方式,看到「比例極低」就想分層。

📝 本節掛載 2 題 iPAS 歷屆試題 — 讀完往下到「iPAS 考題練習」直接實戰。

iPAS 歷屆考題詳解(14 題)

先自行作答,再展開詳解。題目出處均為 iPAS AI 應用規劃師正式考題,著作權屬原主辦單位。

第四梯次初級AI應用規劃師第一科人工智慧基礎概論 第37題

某金融科技公司在利用歷史交易資料建立風險控管模型時,嘗試推估整體詐騙交易比例。近期發現,樣本間存在明顯的時間序列相關性,導致模型在實際偵測新交易時誤判率升高。若希望同時改善詐騙比例推估的準確性並提升模型的穩健性,下列哪一種做法最為合適?

  1. A擴充樣本數量,以涵蓋更多潛在的詐騙型態,但維持既有的隨機抽樣方式不變
  2. B採取時間序列敏感的抽樣策略,例如依據交易時間區間進行分層,以保存原始的時間結構特性
  3. C將資料完全隨機打散,以降低序列相關性對模型訓練造成的影響
  4. D在模型評估時,針對相鄰時間區段進行誤差合併,以便用整體估計方式修正詐騙比例
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 題幹指出樣本間存在明顯的時間序列相關性,且模型在新交易上誤判率升高,顯示既有抽樣方式破壞了資料的時間結構。改採時間序列敏感的抽樣策略,例如依交易時間區間分層抽樣,可保存原始的時間結構特性,使訓練與驗證反映真實的時間依賴關係,避免未來資訊洩漏到訓練資料;同時,詐騙比例的推估能涵蓋不同時間區段的分布變化,兼顧準確性與模型穩健性,故 (B) 最為合適。 【為何其他選項錯了?】 - (A):維持隨機抽樣只擴充樣本數,時間結構仍被忽略,序列相關性造成的偏誤與誤判問題不會因資料變多而解決。 - (C):完全隨機打散會使時間順序消失,訓練資料可能混入相對「未來」的樣本,造成資料洩漏;離線評估虛高,上線表現落差更大。 - (D):在評估階段合併相鄰時段的誤差屬事後修正,訓練資料的時間結構問題並未處理,模型本身的穩健性沒有改善。 提示:時間序列資料的抽樣與切分原則是保存時間結構;隨機打散與事後修正都無法處理序列相關性。
115年第二次初級AI應用規劃師第一科人工智慧基礎概論 第14題

某能源公司以過去三年每小時用電資料建立需求預測模型,並以5-fold 交叉驗證評估,但上線後誤差偏高。技術主管認為問題出在資料分割方式。下列何者最能說明使用標準k-fold 交叉驗證的根本問題?

  1. Ak-fold 交叉驗證需要的計算資源過大,不適合處理三年以上的長期資料;
  2. Bk-fold 交叉驗證會隨機分割資料,使訓練集中可能包含比測試集更晚的時間點,破壞時間依賴性;
  3. Ck-fold 交叉驗證的折數設定過少,應改為10-fold 以提升驗證穩定性;
  4. Dk-fold 交叉驗證僅適用於分類問題,不適合電力需求這類連續數值預測任務
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 標準 k-fold 交叉驗證以隨機方式分割資料,不考慮時間順序,訓練集中可能包含比測試集更晚的時間點,等於用未來資訊預測過去。用電需求資料具有強烈的時間依賴性(趨勢、季節性),此種分割會使離線驗證分數偏高;模型上線後面對真正的未來資料,誤差自然放大,故 (B) 最能說明根本問題。時間序列應改用時間序列切分方式,以較早的資料訓練、較晚的資料驗證。 【為何其他選項錯了?】 - (A):計算資源多寡屬成本問題,不是驗證結果失真的原因;三年每小時資料的規模對 k-fold 並非障礙。 - (C):增加折數仍是隨機分割,未來資訊洩漏到訓練集的問題依舊存在,提高折數無助於修正時間依賴性的破壞。 - (D):k-fold 同樣適用於迴歸任務,並非僅限分類;問題出在時間序列的切分方式,而非任務型態。 提示:時間序列驗證的原則是訓練資料不得包含晚於測試資料的時間點;看到時序資料採隨機切分,先想到資料洩漏。
114年第二梯次中級AI應用規劃師第一科人工智慧技術應用與規劃 第14題

在調整模型超參數(Hyperparameters)時,若希望避免因過度調整參數而導致過擬合,下列哪一種做法最有效提升模型的泛化能力?

  1. A採用交叉驗證(Cross-Validation)於多組參數組合間反覆評估,選擇在驗證資料上表現最穩定的設定
  2. B使用早期停止機制(Early Stopping)監控訓練誤差並在收斂前停止訓練,以防模型學習過度
  3. C對輸入特徵進行標準化以減少特徵值差異帶來的過擬合風險
  4. D提高模型複雜度並使用更多超參數搜尋範圍,以確保模型能充分學習資料特徵
看正解與逐選項詳解

正解:A

正確答案:(A) 【正解解析】 超參數調整最大的風險,是參數組合恰好迎合某一份特定的驗證資料。交叉驗證(Cross-Validation)將資料切為多折,每組參數組合都在多個訓練與驗證切分上重複評估,以平均表現作為選擇依據,可大幅降低單次切分的隨機性,選出表現最穩定、泛化能力最佳的設定,是超參數選擇的標準做法,故 (A) 最有效。 【為何其他選項錯了?】 - (B):早期停止(Early Stopping)控制的是單次訓練的輪數,且正規做法是監控「驗證誤差」而非選項所述的訓練誤差;它防止的是訓練過度,無法處理超參數選擇本身造成的過擬合。 - (C):特徵標準化是使數值尺度一致、幫助收斂的前處理步驟,與過度調參造成的過擬合沒有直接關聯。 - (D):提高模型複雜度並擴大搜尋範圍,會使模型更容易記憶訓練資料,過擬合風險升高,與題目的目標方向相反。 提示:調參應搭配交叉驗證,以多折平均表現決定參數;單一驗證集上的好成績可能只是切分運氣。
114年第二梯次中級AI應用規劃師第一科人工智慧技術應用與規劃 第41題

在進行超參數調校(Hyperparameter Tuning)時,若直接在K-Fold交叉驗證(Cross-Validation)的資料上同時調整模型參數並評估效能,最可能導致下列哪一種問題?

  1. A模型的交叉驗證結果出現過度樂觀偏差(Over-optimistic Bias),因測試摺資料間接參與參數選擇,造成資料洩漏(Data Leakage)
  2. B模型會在每一摺(Fold)內反覆調整參數,導致訓練不穩與過度正則化
  3. C因交叉驗證資料被重複使用,造成效能方差增大,無法獲得穩定估計
  4. DK-Fold 交叉驗證的假設與超參數搜尋相衝突,導致驗證過程失效
看正解與逐選項詳解

正解:A

正確答案:(A) 【正解解析】 超參數選擇本身是一種學習行為。若在同一份 K-Fold 交叉驗證資料上,既用它挑選最佳參數,又以同一批分數宣稱模型效能,測試折的資訊已透過「選參數」的動作滲入模型決策,構成資料洩漏(Data Leakage),回報的效能因此帶有過度樂觀偏差(Over-optimistic Bias)。正確做法是巢狀交叉驗證(Nested Cross-Validation):內圈負責選參數、外圈負責估計效能,或保留一份從未參與調參的獨立測試集,故 (A) 正確。 【為何其他選項錯了?】 - (B):此做法不必然導致過度正則化或訓練不穩;問題出在效能「評估偏差」,而非訓練過程本身。 - (C):重複使用資料的核心問題是估計值系統性偏高(偏差),而非方差增大;即使估計方差很小,樂觀偏誤依然存在。 - (D):K-Fold 與超參數搜尋並不衝突,兩者搭配是常規做法;關鍵在以巢狀結構把「選參數」與「估效能」分離。 提示:同一份驗證資料同時用於選參數與報告效能,分數必然高估;以巢狀交叉驗證或獨立測試集將兩者隔開。
114年第二梯次中級AI應用規劃師第二科大數據處理分析與應用 第39題

若評估一個新開發的腫瘤分類模型,其資料集中有 80%的樣本來自良性病例。若直接使用 5-fold交叉驗證(Cross-Validation) 進行模型評估,可能導致模型效能評估出現偏差,為避免此問題,下列哪一種作法最合適?

  1. A降低K值以減少交叉驗證次數
  2. B改為使用拔靴法(Bootstrap)
  3. C調整測試集使良性樣本比例更高,以模擬真實分佈
  4. D使用分層交叉驗證(Stratified K-Fold Cross-Validation),以確保每折類別比例一致
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 資料集 80% 為良性、20% 為惡性,一般 5-fold 隨機切割時,部分折的惡性樣本可能特別少甚至接近零,各折類別分布不一致,效能估計因此波動並產生偏差。分層交叉驗證(Stratified K-Fold Cross-Validation)在切割時使每一折的類別比例與整體一致(各折皆維持 80:20),每次驗證都在相同的類別結構下進行,評估結果更穩定可靠,是類別不平衡資料進行交叉驗證的標準做法,故 (D) 最合適。 【為何其他選項錯了?】 - (A):降低 K 值使每折樣本變多,但隨機切割造成的類別比例波動仍然存在,問題根源未解決。 - (B):拔靴法(Bootstrap)以有放回方式重抽樣,同樣不保證每次抽樣的類別比例一致,對類別不平衡造成的評估偏差沒有針對性。 - (C):人為調整測試集的類別比例會改變資料分布,使評估結果偏離真實情境,方向錯誤。 提示:類別不平衡加上交叉驗證,直接對應 Stratified K-Fold;讓每折比例與母體一致,評估才具可比性。
114年第二梯次中級AI應用規劃師第二科大數據處理分析與應用 第40題

以下虛擬程式碼(pseudocode)最可能是在描述何種驗證法? Input:  - data_set:包含 N 筆資料的資料集  - model_training_function:用來訓練模型的函式  - model_evaluation_function:用來評估模型的函式(如計算誤差或準確率) Output:  - 平均評估指標(如平均準確率或平均誤差) Algorithm: 1. 初始化評估指標列表 metrics = [] 2. 對 i = 1 到 N:  a. 將第 i 筆資料作為測試集 test_data  b. 將其餘 N-1 筆資料作為訓練集 train_data  c. 使用 model_training_function 在 train_data 上訓練模型  d. 使用訓練好的模型對 test_data 做預測,計算評估指標 metric_i  e. 將 metric_i 加入 metrics 3. 計算 metrics 的平均值 mean_metric 4. 回傳 mean_metric

  1. AHold-out 驗證(Hold-out Validation)
  2. B留一交叉驗證 LOOCV(Leave-One-Out Cross Validation)
  3. CK-fold 交叉驗證(K-fold Cross Validation)
  4. D拔靴法(Bootstrap)驗證
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 虛擬程式碼的關鍵特徵:迴圈執行 i = 1 到 N(N 為資料筆數),每一輪僅以第 i 筆單一資料作為測試集,其餘 N-1 筆全數用於訓練,共訓練 N 個模型後將評估指標取平均。「每次留一筆當測試、輪流留完全部 N 筆」正是留一交叉驗證(Leave-One-Out Cross Validation, LOOCV)的定義,相當於 K-fold 交叉驗證中 K = N 的極端特例,故 (B) 正確。 【為何其他選項錯了?】 - (A):Hold-out 驗證僅做一次訓練與測試集切分(例如 80/20),只訓練一個模型;程式碼訓練了 N 個模型,特徵不符。 - (C):一般 K-fold 將資料切為 K 折,每折包含多筆資料,迴圈執行 K 次(K 通常取 5 或 10);此處迴圈次數等於資料筆數且測試集每次僅一筆,是 LOOCV 而非一般 K-fold。 - (D):拔靴法(Bootstrap)的特徵是以有放回隨機抽樣產生訓練集;程式碼按順序輪流保留一筆,完全沒有隨機抽樣,特徵不符。 提示:迴圈次數等於資料筆數、測試集僅含一筆,即為 LOOCV;它是 K = N 的 K-fold,也是計算成本最高的驗證法。
114年第二梯次中級AI應用規劃師第三科機器學習技術與應用 第1題

某零售企業建立一個銷售預測模型,希望評估該模型在不同月份的新資料上,是否仍能維持穩定的預測表現。資料科學團隊計畫利用統計方法檢驗模型對未觀察資料的適應能力與泛化效果。下列哪一種方法最適合用於此目的?

  1. AF檢定(F-test)
  2. B交叉驗證(Cross-Validation)
  3. C配對樣本t 檢定(Paired-sample t-test)
  4. D卡方檢定(Chi-square Test)
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 題幹要求評估模型對「未觀察資料」的適應能力與泛化效果。交叉驗證(Cross-Validation)將資料反覆切分為多組訓練與驗證子集,輪流以一部分資料訓練、另一部分評估,最後平均各折的表現。此方法能檢驗模型在不同資料切分下的穩定性,避免僅憑單一次切分結果下結論,正符合評估模型於不同月份新資料上是否維持穩定預測表現的需求。 【為何其他選項錯了?】 - (A):F檢定用於比較變異數或檢驗迴歸模型的整體顯著性,屬於統計假設檢定,無法衡量模型對新資料的預測泛化能力。 - (C):配對樣本t檢定比較同一組樣本在兩種條件下的平均差異,檢驗的是「差異是否顯著」,而非模型的泛化表現。 - (D):卡方檢定處理類別變數的獨立性或適合度問題,與評估預測模型在新資料上的穩定性無關。 提示:題幹問「未見過的資料上表現如何」對應交叉驗證;問「兩組數字差異是否顯著」才對應統計假設檢定。
114年第二梯次中級AI應用規劃師第三科機器學習技術與應用 第29題

在工業設備故障預測專案中,模型訓練與超參數調整均依賴於一段歷史數據作為驗證集。然而,隨著設備運行環境與工況條件的變化,原有驗證集已無法充分反映現況,導致模型在實際部署後的預測準確率逐漸下降。下列哪一種策略最能有效提升模型在長期運行環境中的穩健性與泛化能力?

  1. A固定驗證集內容,並透過模型正則化技巧(如 L2 正則化)強化模型泛化
  2. B將全部歷史資料納入訓練,不使用驗證集,依靠早期停止(Early Stopping)控制訓練
  3. C簡化模型架構,減少模型參數數量以降低過擬合風險
  4. D採用時間序列交叉驗證(Time Series Cross Validation)或滑動視窗驗證(Rolling Window Validation)方法,動態更新驗證資料以適應時間演進
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 設備運行環境與工況隨時間演變,固定的歷史驗證集會逐漸偏離當前資料分布,模型上線後的表現因此持續下滑。時間序列交叉驗證(Time Series Cross Validation)依時間先後展開,以過去資料訓練、其後區間驗證;滑動視窗驗證(Rolling Window Validation)則讓訓練與驗證視窗隨時間滾動、動態更新。兩者皆尊重時間順序,避免以未來資料驗證過去,並讓驗證資料持續反映最新環境,是提升長期穩健性與泛化能力的適當策略。 【為何其他選項錯了?】 - (A):L2 正則化可降低過擬合,但驗證集固定不變,仍無法偵測與適應資料分布漂移,未解決根本問題。 - (B):早期停止本身需要驗證集提供停止依據;將全部資料納入訓練、不設驗證集,早停即失去判斷基準,做法自相矛盾。 - (C):簡化模型降低的是過擬合風險,無法處理環境變動造成的資料分布漂移問題。 提示:時間序列驗證原則是只能以過去預測未來;環境會漂移,驗證視窗須隨時間滾動更新。
114年第二梯次中級AI應用規劃師第三科機器學習技術與應用 第34題

某醫療人工智慧團隊正在開發心臟病風險預測模型,資料量僅有 150 筆,其中陽性個案不到 8%。由於樣本數稀少且類別分布極不平衡,團隊希望在有限資料下,仍能準確評估模型在不同資料上的表現穩定性,同時避免訓練資料被過度切分而影響模型效能。若團隊希望在有限樣本下,同時兼顧資料的利用率與各類別在驗證折中的比例一致性,最適合採用下列哪一種交叉驗證方法?

  1. A5-Fold交叉驗證(5-Fold Cross Validation)
  2. B留一法交叉驗證(Leave-One-Out Cross Validation)
  3. C隨機交叉驗證(Random Cross Validation)
  4. D分層留一法交叉驗證(Stratified Leave-One-Out Cross Validation)
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 樣本僅 150 筆,留一法交叉驗證(LOOCV)每次僅保留 1 筆作驗證、其餘全數投入訓練,可將有限資料的利用率提升到最高,適合小樣本情境。陽性個案不到 8%,分層(Stratified)機制確保切分過程中各類別比例維持一致,避免驗證過程的類別分布失衡。題目同時要求「資料利用率」與「各類別在驗證折中的比例一致性」,結合兩種機制的分層留一法交叉驗證即為對應選項。 【為何其他選項錯了?】 - (A):5-Fold 每折驗證集約 30 筆,陽性僅約 2 至 3 筆,統計波動大;未分層時類別比例更易失衡,訓練資料利用率也不如留一法。 - (B):單純留一法的資料利用率最高,但未涵蓋題目強調的類別比例一致性需求。 - (C):隨機交叉驗證既不保證各折的類別比例,資料利用率也不如留一法,兩項需求皆未滿足。 提示:小樣本對應留一法提高資料利用率,類別不平衡對應分層維持比例;題幹兩項需求並列時,選同時具備兩種機制的方法。
115年第一次中級AI應用規劃師第二科大數據處理分析與應用 第10題

某團隊為職業籃球隊建立球員受傷風險預測模型,原始特徵 280 個。初始模型訓練集AUC 為0.94、測試集僅0.68,顯示嚴重過擬合。為改善模型,團隊進行以下處理步驟:第一步於全體資料(含測試集)上計算特徵間線性相關係數並移除高度相關特徵;第二步依模型重要性篩選特徵後重新訓練模型。最終測試集 AUC 提升至0.81。關於上述調整流程,下列敘述何者最為正確?

  1. A使用相關係數進行特徵篩選方向正確,主要問題在於相關係數門檻設定過高
  2. B在全體資料(含測試集)上進行特徵篩選會造成資料洩漏,且線性相關無法捕捉非線性關係
  3. C特徵篩選後需重新對測試集進行標準化,否則會影響模型表現
  4. D測試集表現提升代表過擬合已解決,流程可直接部署
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 此流程有兩項根本問題。第一,特徵篩選屬於「從資料學到的決策」,在包含測試集的全體資料上計算相關係數並篩選特徵,測試集的資訊即滲入建模流程,構成資料洩漏(Data Leakage),其後的測試集 AUC 0.81 已不是乾淨的泛化估計。第二,線性相關係數僅能偵測線性關係,特徵間的非線性冗餘或與目標變數的非線性關聯皆無法捕捉。正確做法是將特徵篩選納入僅使用訓練資料(或交叉驗證訓練折)的建模管線。 【為何其他選項錯了?】 - (A):問題不在門檻高低,而在於使用了不應參與建模的測試集;無論門檻如何設定,資料洩漏依然存在。 - (C):標準化的正確原則是以訓練集擬合轉換參數後套用至測試集,並非特徵篩選後須對測試集重新標準化;此敘述未指出流程真正的缺陷。 - (D):測試集分數的提升可能部分來自洩漏造成的樂觀偏誤;以受污染的評估結果直接部署,上線後實際表現往往低於預期。 提示:凡是從資料學來的步驟(篩選、編碼、縮放)都只能在訓練集上擬合;測試集僅供最終評估,不得參與任何建模決策。
115年第一次中級AI應用規劃師第二科大數據處理分析與應用 第22題

某連鎖便利商店集團欲建立門市未來 14 天每日銷售額預測模型(500 間門市、3 年歷史資料)。資料具有明顯的週期性(週末較高)、年度季節性(暑假與年末高峰)及長期成長趨勢,並包含已知節日與不定期事件(如颱風)。在此情境下,關於資料切分與建模策略,何者最適當?

  1. A採隨機切分(80/20),使用傳統時間序列模型建模,刪除節日資料避免極端值影響,並以均方根誤差(RMSE)評估
  2. B依時間順序切分(最後 90天為測試集),使用具季節性建模能力的時間序列模型並加入節日資訊,不處理不定期事件,以平均絕對百分比誤差(MAPE)評估
  3. C依時間順序切分並採前進式驗證(Walk-Forward Validation),結合時間序列分解與機器學習模型,加入時間特徵、滯後與滾動統計特徵,並納入節日與不定期事件資訊,使用均方根誤差(RMSE)與平均絕對百分比誤差(MAPE)評估
  4. D依時間順序切分,直接使用深度學習模型建模,不進行特徵工程,所有門市共用模型,以平均絕對誤差(MAE)評估
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 時間序列預測的驗證必須尊重時間先後:依時間切分並採前進式驗證(Walk-Forward Validation),每輪皆以過去資料訓練、對其後區間驗證,模擬真實上線情形。特徵面結合時間序列分解與機器學習模型,加入星期、月份等時間特徵,以及滯後(Lag)與滾動統計特徵,並納入已知節日與颱風等不定期事件資訊,才能同時捕捉週期性、季節性、長期趨勢與突發效應。評估同時採用 RMSE(對大誤差較敏感)與 MAPE(跨門市可比較的相對誤差),(C) 是涵蓋最完整的方案。 【為何其他選項錯了?】 - (A):隨機切分會使未來資料混入訓練集,造成時間洩漏,違反時間序列建模的基本原則;刪除節日資料更會捨棄營收高峰這類關鍵樣態。 - (B):切分方式與季節性建模正確,但明確不處理颱風等不定期事件,遇突發事件時預測誤差將顯著擴大,方案不完整。 - (D):不進行特徵工程且 500 間門市共用單一深度模型,忽略門市間的異質性;深度學習仍需適當的特徵與事件資訊,否則難以達到可用精度。 提示:時間序列建模三原則:依時間切分、前進式驗證、納入滯後與事件特徵;隨機切分等同於使用未來資訊。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第27題

某工程師建立零售商品銷量預測模型,初期以第 1 至 52 週資料作為訓練集、第53 週作為測試集(固定時間切分)。半年後重新評估,發現模型對最新資料(如第 80 週)的預測明顯衰退,推測為時間演進導致行為模式改變。若重新設計驗證策略,應採用下列哪種方法,使每次訓練皆基於最新時間區間資料?

  1. AK-fold 交叉驗證(K-fold Cross-Validation)
  2. B分層 K-fold(Stratified K-fold)
  3. C滾動窗口驗證(Rolling Window Validation / Time Series Split)
  4. D留一驗證法(Leave-One-Out Cross-Validation)
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 消費行為隨時間演變會產生概念漂移(Concept Drift),驗證策略必須尊重時間順序。滾動窗口驗證(Rolling Window Validation / Time Series Split)每一輪皆以較早的區間訓練、緊接其後的區間測試,並隨時間向前滾動,確保每次訓練都基於最新時間區間的資料,評估情境貼近上線後的實際使用方式,正符合題目「使每次訓練皆基於最新時間區間資料」的要求。 【為何其他選項錯了?】 - (A):K-fold 隨機切分會將未來資料混入訓練集、以過去資料作測試,造成時間洩漏,評估結果過度樂觀,也無法反映行為模式的漂移。 - (B):分層 K-fold 僅在隨機切分上追加類別比例一致的機制,仍未處理時間順序錯亂的問題。 - (D):留一驗證法同樣未考量時間順序,且每保留一筆就需重新訓練一次模型,計算成本極高,不適合此情境。 提示:時間序列驗證原則是訓練資料必須在測試資料之前;需要反映最新行為時,採用隨時間滾動的驗證窗口。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第44題

Iris 資料集包含三種鳶尾花(Iris setosa、Iris versicolor、Iris virginica)各 50 筆資料,每筆有四個特徵(花萼長度、花萼寬度、花瓣長度、花瓣寬度)。研究人員先用線性判別分析(LDA)降維,接著使用 K 最近鄰(KNN)分類,並以交叉驗證評估準確率,程式如下: from sklearn.model_selection import cross_val_score from sklearn.neighbors import KNeighborsClassifier from sklearn.discriminant_analysis import LinearDiscriminantAnalysis lda = LinearDiscriminantAnalysis() X_new = lda.fit_transform(X, y) model = KNeighborsClassifier(n_neighbors=3) scores = cross_val_score(model, X_new, y, cv=5, scoring="accuracy") scores.mean() # 輸出 0.9733 程式先以整體資料進行 LDA 降維,再用 KNN 分類並以交叉驗證評估準確率。請問下列敘述何者正確?

  1. A此寫法完全正確,因為先以整體資料進行 LDA降維,再以交叉驗證測試 KNN,是標準流程
  2. B此寫法存在資料洩漏(Data Leakage)問題,應將 LDA納入交叉驗證流程中一併進行
  3. C雖然流程不夠嚴謹,但結果仍然能夠代表模型真實的泛化能力
  4. D如果只想驗證 KNN 的分類效果,可以直接跳過 LDA步驟,以簡化流程
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 程式在交叉驗證之前,即以整份資料執行 lda.fit_transform(X, y)。LDA 是監督式降維,擬合時使用了全部樣本的特徵與標籤,包括之後每一輪交叉驗證中理應未見過的測試折;測試資料的資訊因此提前滲入降維轉換,再以轉換後的資料執行交叉驗證,準確率 0.9733 即被系統性高估,此即資料洩漏(Data Leakage)。正確做法是將 LDA 與 KNN 封裝為 Pipeline 後交給 cross_val_score,使每一輪僅以該輪的訓練折擬合 LDA,測試折只做轉換。 【為何其他選項錯了?】 - (A):「先以全體資料降維、再交叉驗證」並非標準流程,而是典型的資料洩漏寫法,將其描述為完全正確會嚴重誤導評估結論。 - (C):洩漏會使估計值系統性偏高,該結果無法代表真實泛化能力,「不嚴謹但結果仍可信」的說法不成立。 - (D):題目要評估的是 LDA 加 KNN 的組合流程,跳過 LDA 是迴避問題;正確解法是將 LDA 納入交叉驗證流程,而非移除。 提示:交叉驗證原則:所有需要擬合的步驟(降維、標準化、特徵選擇)只能使用訓練折;以 Pipeline 封裝可確保流程正確。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第45題

研究人員在以下程式中使用 cross_val_score 對 Iris 資料集(三類別、每類 50 筆)進行 KNN 交叉驗證,但目前尚未設定 cv 參數: from sklearn.model_selection import cross_val_score from sklearn.neighbors import KNeighborsClassifier from sklearn.discriminant_analysis import LinearDiscriminantAnalysis model = KNeighborsClassifier(n_neighbors=3) # 填入程式碼 scores = cross_val_score(model, X, y, cv=cv, scoring="accuracy") scores.mean() 他們希望確保在每次資料分割時,訓練集與測試集的類別比例與原始資料一致,以免影響模型的準確率估計。目前有以下幾段候選程式碼可供選擇: 程式碼 A:cv = KFold(n_splits=5, shuffle=True) 程式碼 B:cv = StratifiedKFold(n_splits=5, shuffle=True) 程式碼 C:cv = 5 程式碼 D:cv = RepeatedStratifiedKFold(n_splits=5, n_repeats=2) 請問為了確保交叉驗證時每個分割中的類別比例與原始資料一致,哪幾段程式碼插入在 [# 填入程式碼] 的部分比較合適?

  1. A程式碼 B、程式碼 C、程式碼 D
  2. B程式碼 A、程式碼 C
  3. C程式碼 A、程式碼 B、程式碼 D
  4. D程式碼 C、程式碼 D
看正解與逐選項詳解

正解:A

正確答案:(A) 【正解解析】 要使每個分割的類別比例與原始資料一致,需要分層(Stratified)抽樣。程式碼 B 的 StratifiedKFold 直接進行分層切分;程式碼 D 的 RepeatedStratifiedKFold 是分層 K 折再重複多輪,同樣具備分層性質;程式碼 C 的 cv=5 亦符合,因為 sklearn 的 cross_val_score 在收到整數且估計器為分類器時,預設即採用 StratifiedKFold。三者皆滿足分層要求,正確組合為程式碼 B、C、D,故選 (A)。 【為何其他選項錯了?】 - (B):包含程式碼 A,而 KFold 是純隨機切分、不做分層,無法保證各折類別比例;同時遺漏了符合條件的 B 與 D。 - (C):程式碼 A 的 KFold 不具分層機制,任何包含它的組合皆不成立。 - (D):程式碼 C 與 D 正確,但遺漏了最直接的分層寫法程式碼 B,組合不完整。 提示:分類器搭配 cv=整數時,cross_val_score 預設使用 StratifiedKFold;需要明確分層可寫 StratifiedKFold,需要更穩定的估計可用 Repeated 版本。

相關節點