整合學習 3 優化基礎模型

2021-10-22 21:52:55 字數 3732 閱讀 5193

s在regression問題中使用訓練集估計模型的引數的原則

我們關心的是模型面對未知的樣本集,我們的目標是使得我們建立的模型在測試集上的測試誤差最小。

如何選擇乙個測試誤差最小的模型呢?

過擬合

測試mse曲線呈現u型曲線,這表明了在測試誤差曲線中,有兩種力量在互相博弈

e (y

0−f^

(x0)

)2=var⁡(

f^(x

0))+

[bias⁡(

f^(x

0))]

2+var⁡(ε

)e\left(y_-\hat\left(x_\right)\right)^=\operatorname\left(\hat\left(x_\right)\right)+\left[\operatorname\left(\hat\left(x_\right)\right)\right]^+\operatorname(\varepsilon)

e(y0​−

f^​(

x0​)

)2=v

ar(f

^​(x

0​))

+[bi

as(f

^​(x

0​))

]2+v

ar(ε

) 我們的測試mse的期望值可以分解為

為了使得模型的測試mse誤差達到最小值,aka同時最小化 偏差的平方和方差。

模型的方差

用不同的資料集去估計f

ff時,估計函式的改變量

我們希望得到乙個穩定的模型,aka在不同的樣本集估計的模型下都不會相差太大。

模型的偏差

為了選擇乙個簡單的模型去估計真實函式所帶入的誤差

偏差 - 度量了 學習演算法的期望** 與 真實結果 的偏離程度,aka刻畫了學習演算法本身的擬合能力。

偏差-方差分解

泛化效能是由學習演算法的能力資料的充分性以及學習任務本身的難度共同決定的。

給定學習任務,為了取得好的泛化效能:

一般而言,增加模型複雜度 --> 增加模型的方差 && 減少模型的偏差

我們要找到乙個方差-偏差的權衡,使得測試mse最小。

我們的目標:選擇乙個測試誤差最小的模型

但是實際上我們很難對實際的測試誤差做精確的計算,因此我們要對測試誤差進行估計。

估計的方式有兩種:

模型越複雜 --> 訓練誤差越小,測試誤差先減後增

因此,我們先構造乙個特徵較多的模型使其過擬合,此時訓練誤差很小而測試誤差很大,那這時我們加入關於特徵個數的懲罰

因此,當我們的訓練誤差隨著特徵個數的增加而減少時,懲罰項因為特徵數量的增加而增大,抑制了訓練誤差隨著特徵個數的增加而無休止地減小。

(這個老熟人了)

在測試誤差能夠被合理的估計出來以後,我們做特徵選擇的目標就是: 從p個特徵中選擇m個特 徵,使得對應的模型的測試誤差的估計最小。對應的方法有:

向前逐步選擇

除了直接對特徵自身進行選擇以外,還可以對regression的係數進行約束/加懲罰 來對p個特徵的模型進行擬合,顯著降低模型方差,這樣也會提高模型的擬合效果。aka 將regression係數往0的方向壓縮

在linear regression的loss func的基礎上新增對係數的約束或者懲罰

在loss func的基礎上加 λ∑j

=1pw

j2\lambda\sum\limits_^w_j^2

λj=1∑p

​wj2

​調節引數 λ

\lambda

λ 的大小是影響壓縮估計的關鍵

缺點:

嶺回歸

sklearn.linear_model.ridge_regression(x, y, alpha, *, sample_weight=none, solver=『auto』, max_iter=none, tol=0.001, verbose=0, random_state=none, return_n_iter=false, return_intercept=false, check_input=true)引數

請注意,只有在比例大 致相同的要素上才能確保「 sag」和「 saga」快速收斂

可以使用sklearn.preprocessing中的縮放器 對資料進行預處理。最後五個求解器均支援密集和稀疏資料。但是,當fit_intercept為true時, 僅』sag』和』sparse_cg』支援稀疏輸入。

在loss func的基礎上加 λ∑j

=1p∣

wj∣\lambda\sum\limits_^|w_j|

λj=1∑p

​∣wj

​∣compare with l2 ridge regression:

為什麼losso能做到特徵選擇而嶺回歸卻不能呢個做到?

左邊為lasso,右邊為嶺回歸

橢圓形曲線為rss等高線,菱形和圓形區域分別代表了l1和l2約束,lsaao回歸和嶺回歸都 是在約束下的回歸,因此最優的引數為橢圓形曲線與菱形和圓形區域相切的點。但是lasso 回歸的約束在每個座標軸上都有拐角,因此當rss曲線與座標軸相交時恰好回歸係數中的某 乙個為0,這樣就實現了特徵提取。反觀嶺回歸的約束是乙個圓域,沒有尖點,因此與rss曲線相交的地方一般不會出現在座標軸上,因此無法讓某個特徵的係數為0,因此無法做到特徵 提取。

lasso:

class sklearn.linear_model.lasso(alpha=1.0, *, fit_intercept=true, normalize=false, precompute=false, copy_x=true, max_iter=1000, tol=0.0001, warm_start=false, positive=false, random_state=none, selection=『cyclic』)引數

目前為止,我們所討論的方法對方差的控制有兩種方式:(這些方法都是基於原始特徵得到的)

新的方法:

機器學習領域中所謂的降維就是指 – 採用某種對映方法,將原高維空間中的資料點 對映到低維度的空間中。

降維的本質 – 學習乙個對映函式 f: x->y

目前大部分降維演算法處 理向量表達的資料,也有一些降維演算法處理高階張量表達的資料。

因為在原始的高維空間中,包含有冗餘資訊以及噪音資訊

在實際應用(e.g. 影象識別)中造成了誤差,降低了準確率

通過降維

在很多演算法中,降維演算法成為了data preprocessing的一部分,如pca

事實上,有一些演算法如果沒有降維預處理,其實是很難得到很好地效果的

CV基礎 模型整合

在機器學習中的整合學習可以在一定程度上提高 精度,常見的整合學習方法有stacking bagging和boosting,同時這些整合學習方法與具體驗證集劃分聯絡緊密。由於深度學習模型一般需要較長的訓練週期,如果硬體裝置不允許建議選取留出法,如果需要追求精度可以使用交叉驗證的方法。下面假設構建了10...

django模型基礎知識整合

開發流程 1 配置資料庫 2 定義模型類 乙個模型類都在資料庫中對應一張資料表 3 執行遷移生成資料表 4 使用模型類進行增刪改查 c r updata d 操作 orm 關係 對映 物件對映關係 django orm mysql sqlit orcal 資料庫 任務 1 根據物件的型別生成表結構 ...

深度學習 模型整合方法

設定為隨模型迭代輪數t t iteration,即一次批處理隨機梯度下降稱為乙個迭代輪數 改變的函式,即 t 0 2 co s m od t 1,t m t m 1 t 02 cos mod t 1,t m t m 1 0 0 若網路超引數設定得當,深度模型隨著網路的進行會逐步趨於收斂,但是不同的訓...