# Linear Models (線性模型) 在**監督式機器學習**中,我們常常會用一條線(或一個平面)來預測資料,這就是所謂的「**線性模型**」。 ### **Linear Regression** 是一種用「直線」來預測數值的方法 當我們有許多資料(藍點),我們希望在這群資料中找到一條直線(紅線),用來說明這群資料(找到他們的規律),用這條線代表預測的值。 ![image](https://hackmd.io/_uploads/B1DYeO6Mex.png) **要怎麼找出這條線?** 假設這條紅線的方程式是 $y = ax+b$ (最簡單的線,只有一個變量) 只要得到這條線的係數 a(斜率)與 b(截距)就可以畫出這條線。而這不是一條隨便畫的線,我們希望這條線能**盡量貼近所有的資料點**(藍點),這個點我們用 $(x_i, y_i)$ 來表示。 > 現在我們有了目標:**找出這條線**,並且這條線是**唯一**最能代表這群資料的線 > > 這其實就是機器學習中的經典概念: > 定義一個**目標函數(loss function)**,然後找出能最小化它的參數組合。 **具體該怎麼做呢?** 透過 OLS「最小平方法」找出這條線! 讓所有資料點與預測線之間的距離(垂直誤差)平方總和越小越好。 讓每個點 $(x_i, y_i)$ 的預測值 $\hat{y}_i = ax_i + b$ 越接近實際值 $y_i$ <img src="https://hackmd.io/_uploads/HyHCL_Tfex.png" width="300"> ## Ordinary Least Squares(最小平方法) 這條線找出來的方式在數學上叫「最小平方法」(Ordinary Least Squares) OLS 是一個經典的線性回歸找出係數的方法,是 Scikit-learn 的LinearRegression() 預設採用的解法 回顧一下我們的目標: > 找出唯一一條「**最能代表資料的直線**」: > > 找到一組係數 $a$(斜率)與 $b$(截距), > 讓所有點與這條線之間的 **垂直距離平方總和最小**。 #### 怎麼做呢?— Ordinary Least Squares 的步驟 **1️⃣ 定義資料** 假設我們有 $n$ 筆資料,每筆資料是 $(x_i, y_i)$ **2️⃣ 定義預測函數** 我們假設資料是根據以下模型產生的: $\hat{y}_i = ax_i + b$ 其中: * $\hat{y}_i$ 是預測值 * $y_i$ 是實際觀察值 **3️⃣ 定義損失函數(Loss Function)** 定義我們想要最小化的誤差平方總和(SSE, Sum of Squared Errors): $$ \text{SSE}(a, b) = \sum_{i=1}^n (y_i - \hat{y}_i)^2 = \sum_{i=1}^n (y_i - (ax_i + b))^2 $$ > **SSE 是什麼?** > 在簡單線性回歸中,我們用模型 $\hat{y}_i = a x_i + b$ 來預測每個資料點的目標值 $y_i$。 > 實際值 $y_i$ 與預測值 $\hat{y}_i$ 之間的差距稱為「**殘差(residual)**」,也就是誤差(error): > > $$ > \text{殘差(residual 或 error)} = y_i - \hat{y}_i > $$ > > SSE(Sum of Squared Errors,誤差平方和)則是把每個殘差的平方加總起來: > > $$ > \text{SSE} = \sum_{i=1}^n (y_i - \hat{y}_i)^2 > $$ > > 這個指標量化了模型預測與實際資料的差距大小,且因為平方的關係,較大的誤差會被放大,使得 SSE 對異常點特別敏感。 > 我們的目標就是調整參數 $a, b$,使 SSE 最小化,也就是讓模型預測值與真實值的誤差平方和盡可能小。 而 **誤差平方總和** 就是這些殘差的平方總和: $$ \text{SSE} = \sum_{i=1}^n (y_i - \hat{y}_i)^2 = \sum_{i=1}^n (y_i - (ax_i + b))^2 $$ #### 為什麼要平方?為什麼是總和? * ✅ **平方**:讓正負誤差不會互相抵消,同時加重「大誤差」的懲罰。 * ✅ **總和**:整體來看全部點的表現,而不只是單點好壞。 > 線性回歸的目標就是: > 找出一組 $a$、$b$,使得 RSS 最小 > $\Rightarrow$ 最小化這條線與所有資料點的**垂直距離平方總和** > 這就叫作 **最小平方法(Ordinary Least Squares, OLS)**。 紅線是預測線 藍點是實際資料點 垂直虛線就是 $y_i - \hat{y}_i$,也就是 **誤差** 這些垂直虛線的「平方總和」越小,紅線就越好! **4️⃣ 求解** 將上式對 $a$ 與 $b$ 進行偏微分,令其為 0: $$ \frac{\partial \text{RSS}}{\partial a} = 0, \quad \frac{\partial \text{RSS}}{\partial b} = 0 $$ 這樣就能解出唯一解: $$ a = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sum(x_i - \bar{x})^2}, \quad b = \bar{y} - a\bar{x} $$