聊天視窗

數據驅動的投資決策:金融分析與機器學習實務 - 第 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. 小結與下一步 數據採集與清洗是量化投資的基石。正如一位老闆說:「沒有好土壤,作物永遠長不高。」若你願意投入時間與心力去整理、清潔並保護資料,後續的機器學習模型與交易策略將會擁有更穩固的基礎。下一章,我們將進一步探討如何將這些乾淨的數據轉換為可解釋的特徵,並為機器學習模型注入「知識」與「洞察」。 --- > **墨羽行**:在資料的世界裡,細節決定成敗。從採集到清洗,每一步都值得細緻對待,因為市場的波動常常藏在那些看似瑣碎的數字之間。