返回目錄
A
數據驅動的投資決策:金融分析與機器學習實務 - 第 2 章
第二章:數據採集與清洗——打造可靠的數據基礎
發布於 2026-02-24 01:49
# 第二章:數據採集與清洗——打造可靠的數據基礎
> **墨羽行**:在金融市場的浪潮中,資料是最早響應的波動。若不先將其淨化,任何投資決策都如同在海浪中尋找方向。
## 1. 為何數據要先被清洗?
投資機器學習的核心不是算法本身,而是能夠讓算法「理解」市場的輸入。若輸入包含錯誤、遺失或重複的數值,模型將學到錯誤的規則,最終產生的信號往往會在實盤上顯得毫無價值。\
> *「一個乾淨的資料集是一個可靠的起點。若你願意投入時間去「剝離」雜訊,後續的模型訓練將會更具備可解釋性與穩定性。」* –
>
> - **林柏川**,量化研究所
## 2. 資料採集:從來源到存儲
### 2.1 來源多元化
1. **傳統市場資料**:開盤、收盤、最高、最低、成交量。可透過官方交易所或第三方 API(例如 Bloomberg、Reuters、Yahoo Finance)。
2. **深度資料**:買賣盤(Level‑2)與時間序列(Tick)。適合高頻策略與滑點分析。
3. **非結構化資料**:新聞、社交媒體(Twitter、Facebook、Line 群組)、企業公告。透過自然語言處理(NLP)轉換為可量化特徵。
4. **結構化公司資料**:財報、業績公告、股利宣告。常由企業網站或 SEC、台灣證券交易所提供。
### 2.2 API 呼叫與資料擷取
- **Python 範例**:
```python
import requests
import pandas as pd
url = "https://api.example.com/v1/stock/AAPL/daily"
response = requests.get(url, params={"api_key": "YOUR_KEY"})
df = pd.DataFrame(response.json()["data"]) # 轉為 DataFrame
```
- **批次下載**:對於歷史數據,建議使用 FTP 或 SFTP 下載完整的 CSV/Parquet 檔案,減少重複呼叫 API 的開銷。
### 2.3 資料存儲與安全
- **結構化存儲**:使用關係型資料庫(PostgreSQL、MySQL)或雲端資料倉儲(Snowflake、BigQuery)。
- **非結構化存儲**:使用 NoSQL(MongoDB、Cassandra)或檔案系統(S3、GCS)。
- **加密與存取控制**:資料在儲存時需加密,且使用 RBAC 或 ABAC 模型控制存取權限。
## 3. 資料清洗流程
| 步驟 | 目的 | 具體做法 |
|------|------|----------|
| 3.1 缺失值處理 | 確保資料完整 | *刪除*(若缺失比例低)、*填補*(線性插值、前值填充) |
| 3.2 异常值檢測 | 防止極端值影響模型 | 盒鬚圖、Z‑score、IQR 檢測 |
| 3.3 重複資料剔除 | 防止重複學習 | 使用 `drop_duplicates()` |
| 3.4 時間對齊 | 連結不同來源的時間序列 | 重新取樣(`resample()`)或合併 `merge_asof()` |
| 3.5 資料正規化 | 讓特徵尺度相近 | Min‑Max、Z‑score、Log 轉換 |
### 3.1 範例:處理缺失值與異常值
```python
import pandas as pd
import numpy as np
# 讀取原始資料
raw = pd.read_csv("raw_stock.csv")
# 缺失值填補:線性插值
raw.interpolate(method='linear', inplace=True)
# 异常值檢測:以 3 標準差為閾值
mean = raw.mean()
std = raw.std()
mask = (raw - mean).abs() > 3 * std
raw[mask] = np.nan # 把異常值設為缺失值,後續再填補
raw.fillna(method='bfill', inplace=True)
# 重複資料剔除
raw.drop_duplicates(inplace=True)
raw.to_parquet("cleaned_stock.parquet")
```
## 4. 合規性檢核:GDPR 與 MiFID II 的實務
| 規範 | 主要要求 | 實務落實 |
|------|----------|----------|
| GDPR | 個人資料取得同意、刪除權 | 建立同意表單,並在資料庫標註同意時間 |
| MiFID II | 交易資料歸檔 7 年 | 建立備份檔案,並定期驗證完整性 |
| 證券交易法 | 禁止內線交易 | 確保資料來源公開,且不使用未公開資訊 |
> **實務建議**:在資料流中加入「合規門檻」:任何新資料進入前,都經過合規審核;在資料遷移或備份時,同時進行加密與存取權限審查。
## 5. 小結與下一步
數據採集與清洗是量化投資的基石。正如一位老闆說:「沒有好土壤,作物永遠長不高。」若你願意投入時間與心力去整理、清潔並保護資料,後續的機器學習模型與交易策略將會擁有更穩固的基礎。下一章,我們將進一步探討如何將這些乾淨的數據轉換為可解釋的特徵,並為機器學習模型注入「知識」與「洞察」。
---
> **墨羽行**:在資料的世界裡,細節決定成敗。從採集到清洗,每一步都值得細緻對待,因為市場的波動常常藏在那些看似瑣碎的數字之間。