簡介
現實生活中的數據很少是乾淨的。列缺少值,文字有奇怪的符號,類別有太多級別,手動建立的特徵不一致。本文可協助您以可重複且無錯誤的方式處理這些任務。
課程目標
- 處理數字和分類的缺失值。
- 正確編碼分類變數。
- 了解什麼是特徵工程以及何時停止。
缺失值:不表示全部缺失
遺失資料有時是一個訊號。在填寫之前,先問一下:為什麼資料會遺失,是隨機遺失還是系統遺失,我們是否應該建立額外的欄位來標記遺失或不遺失?
常見處理
- 數字:當存在異常值時,中位數通常比平均值更安全。
- 分類:填入最常見的值或將其標記為未知。
- 缺失指示器:當缺失本身就是一個訊號時很有用。
特徵工程實用
優先考慮具有清晰業務邏輯的功能,例如過去 30 天內的總支出、每月的支援票數或超出限制的使用率。
框架程式碼
從 sklearn.impute 導入 SimpleImputer
從 sklearn.preprocessing 導入 OneHotEncoder
num_imputer = SimpleImputer(策略='中位數')
cat_imputer = SimpleImputer(策略='most_frequent')
編碼器 = OneHotEncoder(handle_unknown='忽略')
常見錯誤
- 在分割資料之前填充缺失。
- 創造一個預見未來的功能。
- One-hot 的類別太多,導致功能空間無用地臃腫。
練習練習
- 選擇同時具有數字和分類的表格資料集。
- 嘗試 2 種方法來填寫數字中缺少的數字。
- 建立 3 個具有清晰業務解釋的新功能。
完成標準
- 了解如何為每種列類型選擇填入缺失策略。
- 使用one-hot編碼在遇到新類別時不會導致錯誤。
- 建立新功能而不造成洩漏。
逐步練習(進階)
- 準備資料分析報告(缺失率、基數、異常值)。
- 建立2個版本的缺失處理以進行比較。 3.使用one-hot對分類進行編碼,並與目標安全編碼進行比較。
- 增加 3 個具有明確解釋來源的業務功能。
- 評估每個步驟對最終指標的影響。
應提交工件
- 處理前/後的資料品質表。
- 新功能清單及其存在的原因。
- 每個預處理步驟之後的實驗日誌。
自測題
- 非隨機缺失需要以不同方式處理嗎?
- one-hot什麼時候會失效?
- 如何證明新功能有真正的價值?