迴歸
備註
有關更多詳細信息,請參閱 文本和圖像 選項卡!
基於包括特徵和已知標籤的定型資料,對迴歸模型進行定型以預測數位標籤值。 定型回歸模型的程式(或事實上,任何受監督的機器學習模型)牽涉到多個反覆專案,其中您會使用適當的演算法(通常搭配一些參數化設定)來定型模型、評估模型的預測效能,以及重複使用不同演算法和參數的定型程式來精簡模型,直到您達到可接受的預測精確度層級為止。
此圖顯示受監督機器學習模型的訓練程式四個重要元素:
- 將訓練數據隨機分割,創建一個數據集來訓練模型,同時保留一個數據子集用於驗證已訓練的模型。
- 使用演算法將定型數據放入模型。 在回歸模型的情況下,請使用回歸演算法,例如 線性回歸。
- 使用您保留的驗證數據,藉由預測特徵的標籤來測試模型。
- 比較驗證數據集中已知的 實際 標籤與模型預測的標籤。 然後匯總 預測 和 實際 標籤之間的差異,以計算計量,指出模型針對驗證數據預測的精確度。
在每次訓練、驗證和評估迭代之後,您可以使用不同的演算法和參數重複此流程,直到達到可接受的評估指標為止。
範例 - 回歸
讓我們使用簡化的範例來探索回歸,我們將訓練模型,以根據單一特徵值 (x) 預測數值標籤 (y)。 大部分的實際案例都牽涉到多個特徵值,這會增加一些複雜性;但原則是相同的。
在我們的範例中,讓我們堅持先前討論的霜淇淋銷售案例。 針對我們的功能,我們將考慮 溫度 (假設值是指定一天的最高溫度),而我們想要訓練模型預測的標籤是當天售出的霜淇淋數目。 我們將從一些歷史數據開始,其中包括每日溫度(x)和霜淇淋銷售記錄(y):
|
|
|---|---|
| 溫度 (x) | 霜淇淋銷售 (y) |
| 51 | 1 |
| 52 | 0 |
| 67 | 14 |
| 65 | 14 |
| 70 | 23 |
| 69 | 20 |
| 72 | 23 |
| 75 | 26 |
| 73 | 22 |
| 81 | 30 |
| 七十八 | 26 |
| 83 | 36 |
訓練回歸模型
首先,我們會分割數據,並使用其中的子集來定型模型。 以下是訓練資料集:
| 溫度 (x) | 霜淇淋銷售 (y) |
|---|---|
| 51 | 1 |
| 65 | 14 |
| 69 | 20 |
| 72 | 23 |
| 75 | 26 |
| 81 | 30 |
若要深入了解這些 x 和 y 值彼此的關聯性,我們可以將其繪製為沿著兩個座標軸的座標,如下所示:
現在我們已準備好將演算法套用至訓練數據,並將其調整為將作業套用至 x 以計算 y 的函式。 其中一種演算法是 線性回歸,其運作方式是衍生函式,其可透過 x 和 y 值的交集產生直線,同時將線條與繪製點之間的平均距離降至最低,如下所示:
線條是函式的視覺表示法,該函式的斜率描述如何計算指定 x 值的 y 值。 線條會在 50 處截距 x 軸,因此當 x 為 50 時, y 為 0。 如您從繪圖中的座標軸標記所見,線條斜率使得每當沿著 x 軸增加 5 時,就會導致 y 軸向上增加 5。因此,當 x 為 55 時,y 為 5;當 x 為 60 時,y 為 10,依此類推。 若要計算指定 x 值的 y 值,函式只會減去 50;換句話說,函式可以像這樣表示:
f(x) = x-50
您可以使用此函式,以任何指定的溫度預測一天售出的霜淇淋數目。 例如,假設天氣預報告訴我們,明天會是 77 度。 我們可以套用模型來計算 77-50 ,並預測我們明天將銷售 27 個霜淇淋。
但是我們的模型到底有多準確?
評估回歸模型
為了驗證模型並評估其預測程度,我們會保留一些我們知道標籤 (y) 值的數據。 以下是我們保留的數據:
| 溫度 (x) | 霜淇淋銷售 (y) |
|---|---|
| 52 | 0 |
| 67 | 14 |
| 70 | 23 |
| 73 | 22 |
| 七十八 | 26 |
| 83 | 36 |
我們可以使用模型,根據特徵 (x) 值來預測此數據集中每個觀察的標籤;然後將預測的標籤 (ŷ) 與已知的實際標籤值 (y) 進行比較。
使用我們稍早訓練的模型,其封裝的函式 f(x) = x-50,會產生下列預測:
| 溫度 (x) | 實際銷售額 (y) | 預測銷售量 (ŷ) |
|---|---|---|
| 52 | 0 | 2 |
| 67 | 14 | 17 |
| 70 | 23 | 20 |
| 73 | 22 | 23 |
| 七十八 | 26 | 28 |
| 83 | 36 | 33 |
我們可以將預測和實際標籤繪製到特徵值上,如下所示:
預測標籤是由模型計算,因此它們位於函式行上,但函式計算的 ŷ 值與驗證數據集的實際 y 值之間會有一些差異:在繪圖上表示為 ŷ 與 y 值之間的線條,顯示預測與實際值之間的距離。
回歸評估指標
根據預測和實際值之間的差異,您可以計算一些用來評估回歸模型的常見計量。
平均絕對誤差 (MAE)
此範例中的差異表示每個預測有多少冰淇淋是錯誤的。 預測結果不論是 超過 或 低於 實際值都不重要(例如,-3 和 +3 都表示與實際值相差 3)。 此計量稱為每個預測的 絕對錯誤 ,而且可以匯總整個驗證集作為 平均絕對誤差 (MAE)。
在冰淇淋範例中,絕對誤差(2,3,3,1,2 和 3)的平均值(平均)是2.33。
平均平方誤差 (MSE)
平均絕對誤差計量同等地考慮了預測標籤和實際標籤之間的所有差異。 不過,比起一個錯誤較少但誤差較大的模型,擁有一個每次都小幅度犯錯的模型可能更為理想。 產生計量的方法是透過對平方誤差進行平方並計算平方值的平均值來「放大」較大的誤差。 此計量稱為 平均平方誤差 (MSE)。
在我們的霜淇淋範例中,平方絕對值的平均值(也就是 4、9、9、1、4 和 9) 為 6。
均方根誤差 (RMSE)
平均平方誤差有助於將誤差的大小考慮在內,但由於它對誤差值進行了平方,因此產生的計量不再代表標籤測量的數量。 換句話說,我們可以說模型 MSE 為 6,但不會根據誤判的霜淇淋數目來測量其精確度:6 只是指出驗證預測中錯誤層級的數值分數。
如果我們想要根據霜淇淋的數目來測量錯誤,我們需要計算 MSE 的 平方根 ;會產生稱為「不出人意料的 根平均平方誤差」的計量。 在此情況下,√6,也就是 2.45 (霜淇淋)。
決定係數 (R2)
到目前為止,所有計量都會比較預測和實際值之間的差異,以評估模型。 不過,事實上,冰淇淋的每日銷售有一些自然的隨機變異,而模型會考慮這些因素。 在線性回歸模型中,定型演算法符合直線,可將函式與已知標籤之間的平均變異數降到最低。 判斷係數(通常稱為 R2 或 R-Squared)是一個計量,可測量模型可解釋的驗證結果變異比例,而不是驗證數據的一些異常層面(例如,由於當地節日而銷售非常不尋常的霜淇淋銷售日)。
R2 的計算比先前的計量更為複雜。 它會比較預測和實際標籤之間的平方差異總和,以及實際標籤與實際標籤值平均值之間的平方差異總和,如下所示:
R2 = 1- ∑(y-ŷ)2 ÷ ∑(y-ȳ)2
如果看起來很複雜,別擔心太多:大部分的機器學習工具都可以為您計算計量。 重點是,結果是介於 0 到 1 之間的值,描述模型所說明變異數的比例。 簡單來說,這個值越接近 1,模型就越適合驗證數據。 在霜淇淋回歸模型的情況下,從驗證數據計算的 R2 為 0.95。
反覆訓練
上述計量通常用於評估回歸模型。 在大多數真實世界的案例中,數據科學家會使用反覆的過程來重複訓練和評估模型,改變:
- 特徵選擇與準備(選擇要納入模型的特徵,並對它們進行計算,以改善模型的適配度)。
- 演算法選擇 (我們在上一個範例中探索了線性回歸,還有許多其他的回歸演算法)
- 演算法參數(用來控制演算法行為的數值設定,更準確地稱為 超參數 ,以區分它們與 x 和 y 參數)。
在多次反覆運算之後,會選擇在特定案例中得到可接受評估指標的最佳模型。