- 咱們前邊學習了線性迴歸和邏輯迴歸,可是將其應用到實際中可能產生過擬合,下邊咱們來看下如何解決過擬合問題
何爲過擬合

(1)若咱們用直線去擬合數據,顯然是很差的,由於房價隨着面積的增大逐漸平緩,和直線的趨勢不符。這種狀況叫作欠擬合(高誤差),假設函數連訓練集數據都沒有很好地擬合
(2)若使用二次函數擬合,則剛恰好
(3)若使用四次多項式擬合數據,這樣看上去對訓練數據作了很是好的擬合,通過了全部的點。可是這條假設函數爲了想方設法的擬合訓練數據,用了過多的函數變量,並且是扭曲的,不能很好地泛化到新的數據中(泛化:一個假設模型應用到新樣本數據中的能力)。這就叫過擬合算法

- 後邊,咱們會討論如何調試和診斷,來找出致使學習算法故障的東西;以及如何用專門的工具來識別過擬合和欠擬合,下邊咱們先看下如何解決過擬合問題
解決過擬合的方法
- 一般,過擬合是因爲特徵變量多,數據數量少形成的。所以,咱們能夠經過減小變量數量解決過擬合問題,即捨棄一部分變量。後邊的模型選擇算法,就是自動的保留捨棄變量。可是,捨棄變量,每每意味着捨棄了問題的一部分信息
- 所以,目前最好用的方法是正則化。正則化能保留全部的特徵變量
正則化的代價函數
- 咱們先經過例子來直觀的理解下正則化。以房價預測爲例,咱們要解決過擬合問題的話,就要懲罰參數三、4,讓三、4儘量的小。咱們能夠經過在代價函數後添加一個數(1000是隨便找的比較大的數)乘三、4的平方項。這樣爲了讓代價函數儘量小,咱們就會讓三、4儘量小;當三、4接近0時,咱們能夠忽略這兩個數,就獲得了近似二次的函數

- 這就是正則化背後的思路。經過給某些參數較小值,獲得形式更爲簡單的函數,就不易發生過擬合了。可是,在有上百個特徵的線性迴歸中,咱們不知道哪些參數和結果的關聯度小,就無法選擇參數讓他們變小。因此,咱們懲罰除了參數0以外的全部參數,添加他們的正則化項,縮小全部的參數
- 要注意的是,首先,咱們不知道爲什麼縮小全部參數能像房價預測只縮小高階項參數那樣避免過擬合,但這是一個事實,咱們只能接受;其次,不懲罰參數0只是咱們的習慣,實際上加不加上結果差別很小,咱們只是出於管理不加上
正則化參數
(1)想要假設函數更好地擬合訓練集數據
(2)要參數值儘量的小函數
咱們的正則化參數就須要平衡二者
工具
- 若咱們的正則化參數值很大,將參數都懲罰到了接近0,就成了欠擬合;若正則化參數小,參數值基本不受影響,就容易變成過擬合
- 所以咱們要適當的選擇正則化參數。後邊咱們會談到用多重選擇的方法選擇正則化參數
邏輯迴歸的正則化沒字幕
...學習