機器學習(五) 欠擬合 過擬合與區域性加權回歸演算法

2021-09-16 18:36:11 字數 2245 閱讀 8252

史丹福大學公開課 :機器學習課程

我們先來看一張圖:

第乙個圖是欠擬合,用一條直線來擬合樣本,樣本分佈比較分散,直線難以擬合全部訓練集樣本,所以模型擬合能力不足。第二個圖顯示的曲線就很好的擬合樣本分佈情況,雖然並沒有完全的跟這些樣本點重合,但是曲線比較貼近樣本分佈軌跡。第三張圖是過擬合,曲線很好的擬合了樣本,幾乎跟樣本重疊,同時樣本中的噪音資料也被擬合,噪音資料影響了模型訓練。

我們還用房屋**來做例子,我們使用梯度下降演算法,當我們只用房屋面積大小這乙個特徵時,用x1表示,得到的假設函式為乙個一次函式,如上面圖一,x軸為房屋面積大小,y軸為房屋**。若我們定義特徵集合為:x1表示房屋大小,x2表示房屋大小的平方,使用相同的演算法,擬合後會得到乙個二次函式,在圖中為拋物線,如上面圖二,這樣基於資料特點會擬合的更好。以此類推,若資料集有7個資料,我們可以令x3表示房屋大小的三次方......最高可以擬合出乙個6次多項式。這樣,我們可以得到乙個精確擬合所有資料的模型,它的曲線可以完美通過每個資料點,如上面圖三。但是沒有人會認為這個模型是對房屋**的乙個非常好的**,因為它僅僅反應了所給的特定資料集合的特質,而不是隱藏在其下的房屋**隨房屋大小變化的一般規律。

我們把第一種使用過小的特徵集合的使得模型過於簡單的稱為欠擬合,它的缺點簡單點理解就是模型簡單,在訓練集上的準確率不高,同時在測試集上的準確率也不高,這樣如何訓練都無法訓練出有意義的引數,模型也得不到較好的效果。

把第三種由於使用了過大的特徵集合使得模型過於複雜的稱為過擬合。我們做機器學習的乙個目的就是**,對訓練集所做的擬合都是在已知目標變數的基礎上進行的,擬合的再好,這些都是已經知道的,而我們想要的就是能夠對未知的事情進行**,過擬合最大的缺陷就在這裡,已知的擬合的好,未知的卻不能很好**。這裡給出它們乙個不那麼正式的定義:

欠擬合(underfitting):在出現欠擬合的情況下,資料中的某些非常明顯的模式沒有被成功的擬合出來。

過擬合(overfitting):在出現過擬合的情況下,演算法擬合出的結果僅僅反應了所給的特定資料的特質。

過擬合和欠擬合都是我們在特徵選擇中會出現的問題,有幾個方法可以用來解決這類學習問題,比如我們之後會講到的特徵選擇演算法,這是一類自動化演算法,可以在這類回歸問題中選擇要用到的特徵。還有一類非引數學習演算法可以緩解我們選取特徵的需求——區域性加權回歸演算法。

首先定義這兩個概念:

引數學習演算法(parametric learning algorithm)

非引數學習演算法(non-parametric learning algorithm)

定義:非引數學習演算法是乙個引數數量會隨m(訓練集大小)增長的演算法。通常定義為引數數量隨m線性增長。換句話說,就是演算法所需要的東西會隨著訓練集合線性增長,演算法的維持是基於整個訓練集合的,即使是在學習以後。

下面來看區域性加權回歸演算法(locally weighted regression):

區域性加權回歸演算法一種特定的非引數學習演算法,也稱作loess。由於它是非引數學習演算法,這使得特徵的選擇對於演算法來說沒那麼重要,也就避免了上面我們由於特徵選擇的不當導致的欠擬合和過擬合。

舉個例子,有一組像這樣的訓練集合如下:

使用區域性加權回歸演算法時,我們會先檢查資料集合,並只考慮那些位於x周圍固定區域內的資料點。然後取這些點,對於這個資料的子集使用線性回歸,擬合出一條直線,再根據這條直線求出具體的值,作為演算法返回的結果。

這個引數波長引數,它控制了權值隨距離下降的速率。如果

總結:

對於區域性加權回歸,每進行一次**,都要重新擬合一條曲線。但如果沿著x軸對每個點都進行同樣的操作,你會得到對於這個資料集的區域性加權回歸**結果,追蹤到一條非線性曲線。由於每次進行**都需要全部的訓練資料(每次進行的**得到不同的引數

區域性加權回歸的問題:

由於每次進行**都要根據訓練集擬合曲線,若訓練集太大,每次進行**的用到的訓練集就會變得很大,學習效率很低,並且區域性加權回歸也不是一定就能避免欠擬合。有方法可以讓區域性加權回歸對於大型資料集更高效,可以看之後的關於kd-tree的內容。

機器學習(十六)欠擬合與過擬合

問題 訓練資料訓練的很好啊,誤差也不大,為什麼在測試集上面有問題呢?當演算法在某個資料集當 現這種情況,可能就出現了過擬合現象。那麼是什麼原因導致模型複雜?線性回歸進行訓練學習的時候變成模型會變得複雜,這裡就對應前面再說的線性回歸的兩種關係,非線性關係的資料,也就是存在很多無用的特徵或者現實中的事物...

機器學習(13)欠擬合與過擬合

應用 當演算法在某個資料集當 現這種情況,可能就出現了過擬合現象。那麼是什麼原因導致模型複雜?線性回歸進行訓練學習的時候變成模型會變得複雜,這裡就對應前面再說的線性回歸的兩種關係,非線性關係的資料,也就是存在很多無用的特徵或者現實中的事物特徵跟目標值的關係並不是簡單的線性關係。過擬合原因以及解決辦法...

機器學習基礎 過擬合,欠擬合

最左邊屬於欠擬合,最右邊過擬合。欠擬合是對資料擬合的不好,在訓練集和測試集上的表現都很差。過擬合在訓練集上表現得很好,在測試集上表現得不好 欠擬合原因 模型過於簡單 使用更複雜的模型,整合 訓練次數不夠 增加訓練次數 過擬合原因 模型過於複雜 訓練資料少 資料中雜訊多 解決過擬合方法 簡化模型 減少...