thoughtful
在機器學習中,理解輸入 $X$ 與輸出 $Y$ 之間的維度關係,是構建模型最核心的一步。我們可以將其簡化為「特徵(Features)」與「預測目標(Target)」的對應。
以下是針對維度(Dimensions)與其關係的詳細說明:
1. 輸入維度 $X$ (Input Dimensions)
輸入 $X$ 通常被稱為特徵矩陣。它的維度通常表示為 $(n, d)$。
$n$ (Samples): 代表資料的筆數(樣本數)。例如:你有 1000 位客戶的資料。
$d$ (Features/Dimensions): 代表每一筆資料包含的屬性數量。
一維數據: 簡單的表格資料。例如:[年齡, 收入, 信用評分],此時 $d=3$。
高維數據: * 影像: 維度可能是 $(寬, 高, 通道數)$。一張 $28 \times 28$ 的灰階圖片,展平後 $d = 784$。
文字: 經過 Embedding 後,每個字可能變成 512 維的向量。
2. 輸出維度 $Y$ (Output Dimensions)
輸出 $Y$ 被稱為標籤向量或矩陣,其維度取決於你解決的問題類型:
| 問題類型 | 輸出描述 | 維度示例 |
| 迴歸 (Regression) | 預測一個連續數值(如房價)。 | $(n, 1)$ |
| 二元分類 (Binary Classification) | 預測 0 或 1(如是否生病)。 | $(n, 1)$ |
| 多元分類 (Multi-class) | 預測多個類別中的一個(如貓、狗、鳥)。 | $(n, k)$,其中 $k$ 為類別數(通常使用 One-hot 編碼)。 |
| 多標籤分類 (Multi-label) | 一筆資料可同時屬於多個類別。 | $(n, k)$,每一位可以是 0 或 1。 |
3. $X$ 與 $Y$ 的數學關係:映射函數
模型的核心目標是找到一個數學函數 $f$,使得:
$W$ (Weights): 權重矩陣。它的維度必須與 $X$ 和 $Y$ 匹配。
$b$ (Bias): 偏置項。
維度匹配原則 (Dimensionality Matching)
在線性層(Linear Layer)中,如果 $X$ 是 $(n, d_{in})$,而你希望輸出 $Y$ 是 $(n, d_{out})$,那麼權重 $W$ 的維度必須是 $(d_{in}, d_{out})$。
這就是矩陣乘法的基本規則:$(n \times d_{in}) \cdot (d_{in} \times d_{out}) = (n \times d_{out})$。
4. 常見的維度陷阱
在處理從 MySQL 匯入的資料時,最常遇到以下維度問題:
Rank-1 Array 問題: 在 Python (NumPy) 中,
shape為(10,)的陣列既不是列向量也不是行向量。許多 ML 模型要求輸入必須是(10, 1)。你需要使用X.reshape(-1, 1)來修正。類別資料未轉換:
如果你的 $Y$ 是字串(如 "Positive", "Negative"),模型無法運算。必須轉換為 $0$ 或 $1$,維度維持 $(n, 1)$。
時間序列 (3D 維度):
如果你處理的是股票或感測器數據,維度會多出一維「時間步」,變成 $(樣本, 時間步, 特徵)$,即 $(n, t, d)$。
總結來說:
$X$ 是你給模型的「線索」,其維度決定了資訊的豐富度;$Y$ 是模型的「答案」,其維度決定了問題的性質。
您目前手頭上的 MySQL 資料,總共有多少個欄位(特徵 $d$)? 以及您想要預測的是單一數值還是分類標籤?如果您提供具體的欄位名稱,我可以幫您規劃精確的 $X, Y$ 維度配置。
沒有留言:
張貼留言