Chuyển đến nội dung chính

第 11 課:缺失值、分類變數、特徵工程

實際資料處理過程:缺失、編碼、縮放、異常值處理和基本特徵交叉。

🧠 人工智慧與機器學習 — 第 10 課 第 11 課:缺失值,分類 變數、特徵工程

機器學習:從基礎到高級

第 2 部分:業界標準工作流程

亞洲開發網

簡介

現實生活中的數據很少是乾淨的。列缺少值,文字有奇怪的符號,類別有太多級別,手動建立的特徵不一致。本文可協助您以可重複且無錯誤的方式處理這些任務。

課程目標

  • 處理數字和分類的缺失值。
  • 正確編碼分類變數。
  • 了解什麼是特徵工程以及何時停止。

缺失值:不表示全部缺失

遺失資料有時是一個訊號。在填寫之前,先問一下:為什麼資料會遺失,是隨機遺失還是系統遺失,我們是否應該建立額外的欄位來標記遺失或不遺失?

常見處理

  • 數字:當存在異常值時,中位數通常比平均值更安全。
  • 分類:填入最常見的值或將其標記為未知。
  • 缺失指示器:當缺失本身就是一個訊號時很有用。

特徵工程實用

優先考慮具有清晰業務邏輯的功能,例如過去 30 天內的總支出、每月的支援票數或超出限制的使用率。

框架程式碼

從 sklearn.impute 導入 SimpleImputer
從 sklearn.preprocessing 導入 OneHotEncoder

num_imputer = SimpleImputer(策略='中位數')
cat_imputer = SimpleImputer(策略='most_frequent')
編碼器 = OneHotEncoder(handle_unknown='忽略')

常見錯誤

  • 在分割資料之前填充缺失。
  • 創造一個預見未來的功能。
  • One-hot 的類別太多,導致功能空間無用地臃腫。

練習練習

  • 選擇同時具有數字和分類的表格資料集。
  • 嘗試 2 種方法來填寫數字中缺少的數字。
  • 建立 3 個具有清晰業務解釋的新功能。

完成標準

  • 了解如何為每種列類型選擇填入缺失策略。
  • 使用one-hot編碼在遇到新類別時不會導致錯誤。
  • 建立新功能而不造成洩漏。

逐步練習(進階)

  1. 準備資料分析報告(缺失率、基數、異常值)。
  2. 建立2個版本的缺失處理以進行比較。 3.使用one-hot對分類進行編碼,並與目標安全編碼進行比較。
  3. 增加 3 個具有明確解釋來源的業務功能。
  4. 評估每個步驟對最終指標的影響。

應提交工件

  • 處理前/後的資料品質表。
  • 新功能清單及其存在的原因。
  • 每個預處理步驟之後的實驗日誌。

自測題

  • 非隨機缺失需要以不同方式處理嗎?
  • one-hot什麼時候會失效?
  • 如何證明新功能有真正的價值?