資料知識地圖 · 4. 資料清理

4. 資料清理

Cleaning & Data Quality

在互動地圖中開啟 回資料知識地圖

觀念教學

資料科學家八成時間在洗資料——不是笑話,是工作日誌。資料清理(Data Cleaning)與品質管理,決定後續所有分析與模型的天花板。

核心觀念

清理三大戰場:缺失值處理(補值、刪除、標記)、離群值與異常偵測(揪出可疑數值,判斷是錯誤還是訊號)、一致性檢查(格式統一、重複刪除、範圍檢查、跨表一致)。再用資料品質指標持續監控——品質不是大掃除一次就好,是一種持續維運的狀態。

白話理解

會員資料表:生日欄一半空白(缺失)、有人年齡兩百歲(異常)、同一人三筆紀錄(重複)、日期欄兩種寫法混用(格式不一)。這種表直接建模,模型學到的是垃圾的形狀——垃圾進、垃圾出(Garbage in, garbage out)

品質指標

  • 完整性(Completeness):該有值的欄位有值嗎?缺失率多少?
  • 一致性(Consistency):格式、單位、跨表定義統一嗎?
  • 即時性(Timeliness):資料夠新鮮嗎?更新延遲多久?
  • 正確性(Accuracy):數值符合真實世界嗎?
  • 唯一性(Uniqueness):同一實體只有一筆嗎?

清理工作流

  1. 資料剖析(Profiling):每欄的缺失率、分布、唯一值先看一輪
  2. 依缺失機制與業務意義決定補值、刪除或標記
  3. 偵測離群值,判斷錯誤修正、訊號保留
  4. 統一格式、去重複、檢查跨表參照
  5. 規則自動化進管線,持續把關而非一次性大掃除
🎯 口訣:完整、一致、即時——三個指標盯到底,品質是狀態不是事件。

iPAS 考點

配對題:缺失率對應完整性、格式統一對應一致性、資料延遲對應即時性。流程題:「拿到新資料集的第一步」——資料剖析與品質檢查,不是直接建模。陷阱:「缺失值一律刪除」「離群值一律移除」這種絕對化選項,幾乎都是錯的。

應用場景

缺失值處理離群值偵測重複資料刪除格式統一

評估指標

完整性一致性即時性

iPAS 歷屆考題詳解(1 題)

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

115年第一次中級AI應用規劃師第二科大數據處理分析與應用 第39題

在建構自動化資料清洗管線時,工程師撰寫一個用於補齊缺失欄位的 Python 函式,程式碼如下: def process_record(record, tags=[]):  tags.append("checked")  record['tags'] = tags  return record row1 = process_record({"id": 1}) row2 = process_record({"id": 2}) 當此函式連續處理兩筆獨立的資料(row1 與 row2)後,請問第二筆資料 row2['tags'] 的內容會為何?

  1. A["checked", "tags"]
  2. B[]
  3. C["checked", "checked"]
  4. D拋出 KeyError 錯誤,因為字典中沒有 tags 鍵值
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 本題考 Python 的可變預設參數(Mutable Default Argument)特性:預設值 tags=[] 只在「函式定義時」建立一次,之後所有未傳入 tags 的呼叫都共用同一個 list 物件。第一次呼叫 append 後該 list 成為 ["checked"];第二次呼叫取得的仍是同一個 list,再 append 一次即成為 ["checked", "checked"],並被指派給 row2['tags'],故 (C) 正確。此外 row1['tags'] 指向同一物件,內容也會同步變成兩個元素;兩筆獨立資料因共用同一 list 而互相影響,在資料清洗管線中是典型的資料汙染來源。 【為何其他選項錯了?】 - (A):程式僅曾 append 字串 "checked",從未將字串 "tags" 加入 list,此內容不可能出現。 - (B):若預設值於每次呼叫時重新建立,結果會是 ["checked"] 而非空列表;實際上預設 list 只建立一次且持續被 append,更不可能為空。 - (D):record['tags'] = tags 是「指派」操作,鍵不存在時會直接新增鍵值對,不會拋出 KeyError;KeyError 只發生在「讀取」不存在的鍵時。 提示:Python 預設參數只在 def 時評估一次;可變預設值應寫成 tags=None,並於函式內以 if tags is None: tags = [] 初始化。

相關節點