返回目錄
A
數據洞見:從原始資料到商業決策 - 第 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 能把「嘈雜的原始資料」轉化為「可解釋、可操作的洞見」。在下一章,我們將進一步探討如何將這些洞見轉化為機器學習模型,並考慮模型的可解釋性與倫理性。