聊天視窗

數據洞見:從原始資料到商業決策 - 第 4 章

第四章 探索性資料分析(EDA)—從數據洞見的第一步

發布於 2026-03-07 02:15

# 第四章 探索性資料分析(EDA) > **章節定位**:在資料清理之後,下一步是快速把握資料結構、分布與潛在關係。探索性資料分析(EDA)不僅是數值摘要,更是一場與資料互動的「敘事」,讓我們在正式建模前,先把「問題」轉化為「可量化的洞見」。 ## 4.1 為何要做 EDA? 1. **驗證假設**:在進入建模前確認假設(如「價格隨時間波動」)是否成立。 2. **揭露異常**:識別遺失值、離群點、資料分布不均,避免後續模型被噪音污染。 3. **選擇特徵**:透過相關係數、互信息等量化方式挑選對預測最有價值的變數。 4. **說服利益相關者**:可視化能夠快速說明問題,提升決策者對資料分析的信任度。 ## 4.2 EDA 的核心流程 | 步驟 | 目的 | 常用工具 | |------|------|----------| | 1. 資料結構快速掃描 | 了解欄位型別、資料量、缺失比例 | `df.info()`、`df.describe()` | | 2. 文字特徵預處理 | 轉換類別型欄位、標準化文字 | `pd.Categorical`、`sklearn.preprocessing.LabelEncoder` | | 3. 數值特徵描述統計 | 均值、中位數、偏態、峰度 | `df.describe()` | | 4. 資料分布視覺化 | 檢查正態性、分佈形態 | Seaborn 的 `distplot`, `boxplot` | | 5. 相關係數矩陣 | 直觀顯示變數間線性關係 | `sns.heatmap(df.corr())` | | 6. 多變量關聯探索 | 交互效應、分組差異 | FacetGrid、pairplot | | 7. 欠缺值與異常點處理 | 判斷是否填補或刪除 | `df.isnull().sum()`、`df.boxplot()` | | 8. 確定特徵工程方向 | 選擇變數轉換、交互項 | 自訂函數、`PolynomialFeatures` | > **實務小提醒**:EDA 的每一步都可以是迴圈式的,當你發現新的洞見,回到前面調整資料前處理即可。 ## 4.3 案例實作:線上零售業務數據 以下以 Kaggle 的「Online Retail」資料集為例,展示如何從資料探索到洞見。 ```python import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 讀取資料 df = pd.read_csv('online_retail.csv', encoding='ISO-8859-1') # 1. 資料結構 print(df.info()) print(df.describe()) # 2. 缺失值分布 print(df.isnull().sum()) # 3. 數值分布視覺化 plt.figure(figsize=(8,4)) sns.histplot(df['Quantity'], bins=50, kde=True) plt.title('Quantity 分佈') plt.show() # 4. 相關係數 corr = df.corr() plt.figure(figsize=(8,6)) sns.heatmap(corr, annot=True, cmap='coolwarm') plt.title('相關係數矩陣') plt.show() ``` ### 4.3.1 主要觀察 - **缺失值**:`InvoiceDate` 及 `Country` 之列存在缺失,需視業務決策決定填補方式。 - **Quantity 分佈**:右偏,部分訂單量極大,提示存在大型訂購行為。 - **相關係數**:`UnitPrice` 與 `Quantity` 之間的負相關顯示大量訂單往往單價較低。 ### 4.3.2 洞見生成 1. **價格彈性分析**:高價商品的訂購量相對較低,或許可考慮促銷或分級定價。 2. **客群分群**:根據 `Country` 與 `CustomerID` 的分佈,可進一步聚類分析,挖掘不同地區的購買行為。 3. **時間序列趨勢**:`InvoiceDate` 之月份變化可視化,了解季節性波動,為庫存管理提供依據。 ## 4.4 常見 EDA 錯誤與解決方案 | 錯誤 | 影響 | 解決方案 | |------|------|----------| | **僅依賴統計摘要** | 無法捕捉分佈尾部或非線性關係 | 加入視覺化(箱形圖、散點圖) | | **忽略缺失值分佈** | 可能低估缺失對模型的影響 | 使用 `missingno` 或熱力圖觀察缺失模式 | | **過度依賴相關係** | 相關不等於因果 | 引入統計測試或專家知識進行驗證 | | **視覺化過於簡化** | 失去重要細節 | 分層視覺化、交互式工具(Plotly) | ## 4.5 EDA 的文化:從數據到故事 在商業環境中,EDA 不是單純的技術流程,而是一種「敘事」技巧。將數據變成圖表,再轉化為敘事,可以讓非技術人員快速抓住重點。建議在報告中使用 - **「問題」→「資料」→「洞見」三段式結構** - **可交互式儀表板**:使用 Tableau、PowerBI 或 Streamlit 讓決策者自行探索 - **持續迭代**:每次業務變更都要重新進行 EDA,確保模型始終貼合實際。 ## 4.6 總結 探索性資料分析是資料科學流程中的關鍵橋樑,既能把握資料質量,又能快速定位商業價值。透過結構化的流程、豐富的視覺化工具與嚴謹的統計檢驗,EDA 能把「嘈雜的原始資料」轉化為「可解釋、可操作的洞見」。在下一章,我們將進一步探討如何將這些洞見轉化為機器學習模型,並考慮模型的可解釋性與倫理性。