聊天視窗

資料驅動的決策:企業資料科學實務 - 第 2 章

第二章:資料探索與清理—從原始資料到乾淨洞察

發布於 2026-03-03 00:47

# 第二章:資料探索與清理—從原始資料到乾淨洞察 > **為什麼要先「探索」?** > > 在資料科學的流程中,資料探索往往是「看見」問題的第一步。就像工程師在拆解機械前先觀察表面狀態,資料探索能幫助我們快速定位數據缺陷、潛在異常,甚至在最初的可視化中發現隱藏的商業機會。 ## 2.1 資料探索的核心觀念 1. **定量與定性雙管齊下** - *定量*:統計量(平均值、標準差、分位數)以及分佈圖表(直方圖、箱形圖)。 - *定性*:文字說明、業務語境、專家知識。 2. **假設檢驗與探索式分析的平衡** - 不要急於推斷結果,而是先描繪「數據的形狀」。 - 以「為什麼會有這樣的分佈?」為導向,逐步縮小疑問。 3. **可重現性** - 建立 Notebook 或腳本,確保每一步都可追溯、可重複。 ## 2.2 常用工具與技術 | 工具 | 主要功能 | 典型應用場景 | |------|----------|--------------| | Pandas | 資料框架、快速計算 | 機器學習前的資料前處理 | | Matplotlib / Seaborn | 數據可視化 | 直方圖、散點圖、熱力圖 | | NumPy | 數值運算 | 大型矩陣計算 | | Jupyter Notebook | 交互式分析 | 數據探索、報告製作 | | DataDog / Grafana | 監控數據流 | 監測數據管道健康 | > **小技巧**:在 Jupyter Notebook 中使用 `%matplotlib inline` 可直接在筆記本內顯示圖表,省去輸出文件的麻煩。 ## 2.3 案例實踐:銀行客戶行為資料探索 ### 2.3.1 資料來源 - **交易紀錄**:包含時間、金額、類別、地點。 - **客戶基本資料**:年齡、性別、職業、戶籍。 - **行為指標**:登入頻率、交易成功率、遲延支付比例。 ### 2.3.2 資料探索步驟 1. **載入資料** python import pandas as pd df = pd.read_csv('bank_transactions.csv') 2. **基本統計檢查** python df.describe(include='all') - 觀察 **欠缺值**: `df.isnull().sum()`。 3. **異常值檢測** - 使用箱形圖(Boxplot)查看交易金額的異常值。 python import seaborn as sns sns.boxplot(x=df['amount']) 4. **類別變量分佈** - `df['merchant_category'].value_counts().head()`。 5. **時間序列視覺化** - 交易量隨時間變化: `df.groupby('date')['amount'].sum().plot()`。 ### 2.3.3 主要發現 - **交易金額分佈極度偏態**: 95% 的交易金額低於 200 元,少數高額交易對平均值造成擾動。 - **遲延支付比例**: 35% 的客戶存在逾期交易,且多集中於「學生」與「退休」群體。 - **交易頻率與地點相關性**: 大量高頻交易發生於大型商場區域,顯示潛在的「購物節」效應。 ## 2.4 實務建議與常見陷阱 | 風險 | 針對措施 | |------|-----------| | **數據缺失過多** | 與資料所有者討論補齊或刪除,必要時使用插值或模型預測補值 | | **樣本偏差** | 檢查資料收集範圍,若偏差嚴重,需收集更多樣本或做加權調整 | | **時間同步問題** | 確保所有時間戳統一時區,避免夏令時間誤差 | | **隱私與合規** | 刪除或匿名化個人敏感資訊,遵守 GDPR / CCPA 相關規範 | > **開放式思考**:在探索階段,保持好奇心。若發現非直覺的關聯,先把它標記為「待驗證」,不要急於推論。 ## 2.5 小結 - 資料探索是「知情決策」的起點;透過統計、可視化和專家知識,能快速定位資料品質問題與商業洞察。 - 清晰的探索流程不僅提升工作效率,更能降低後續模型訓練的風險。 - 以銀行客戶資料為例,我們從數值分佈到時間序列,再到類別關聯,全方位描繪出資料面貌,為預測模型奠定堅實基礎。 > **延伸閱讀**: > - *《Feature Engineering for Machine Learning》* (Alice Zheng) > - *《Python Data Science Handbook》* (Jake VanderPlas)