sklearn第二十八講 驗證曲線

2021-08-22 19:43:32 字數 1639 閱讀 1390

每個估計量都有自己的優勢和不足。估計量的泛化誤差能被分解為偏差(bias), 方差(variance)和噪音(noise). 乙個估計量的偏差是它對於不同訓練集的平均誤差。方差表示它對不同訓練集的敏感程度。噪音是資料的屬性。在下圖裡,我們看見函式 f(x

)=cos⁡(3

2πx)

f(x)=\cos (\frac\pi x)

f(x)

=cos(2

3​πx

), 還有來自該函式的帶噪音的樣本。我們使用三個不同的估計量擬合這個函式。度為1, 4, 15的多項式特徵的線性回歸。從圖上可以看出,第乙個估計量充其量提供乙個很差的擬合,因為它太簡單了,偏差很高。第二個估計量非常完美地近似了函式,第三個估計量完美地近似了訓練資料,但對擬合真實函式不是很好,即,它對改變的資料集很敏感,方差高。

偏差和方差是估計量的內在屬性,為了使它們盡量低,我們通常必須選擇學習演算法和超引數。減少乙個模型的方差的另一種方法是使用更多的資料。然而,如果乙個模型太複雜而不好估計時,你只能收集更多的資料。

在簡單的一維問題裡,很容易看出估計量是否遭遇偏差或方差的問題。然而,在高維空間裡,模型變得很難視覺化。出於這個原因,經常使用下面介紹的工具。

為了驗證乙個模型,我們需要分數函式,例如,分類器準確率。選擇乙個估計量的多個超引數的正確方式是網格搜尋或類似的方法,這類方法選擇在乙個或多個驗證集上具有最高分數的超引數。注意,如果我們根據乙個驗證分數優化超引數,那麼這個超引數是有偏的,不再是乙個好的泛化估計。為了得到乙個適當的泛化估計,我們必須在另乙個檢驗集上計算分數。然而,有時候畫出乙個超引數對訓練分數和驗證分數的影響,找出估計量是否過度擬合或欠擬合是有幫助的。

validation_curve函式幫助實現。

如果訓練分數和驗證分數都很低,估計量是欠擬合的。如果訓練分數高而驗證分數低,估計量是過度擬合,否則估計量是好的。然而,在實際情況中,低訓練分數高驗證分數通常是不太可能的。

乙個學習曲線顯示乙個估計量的訓練分數和驗證分數隨著訓練樣本量的變化情況。學習曲線可以幫助我們找出增加更多訓練資料的受益程度,估計量是否遭遇方差/偏差誤差。如果訓練分數和驗證分數收斂到的值,隨著訓練集樣本的增加而變得太小,那麼增加訓練樣本益處不大。下圖顯示的是,***** bayes大致收斂到乙個很低的分數。

我們可能必須使用乙個估計量,或者引數化當前估計量。如果對於最大的訓練樣本數,訓練分數比驗證分數大很多,增加訓練樣本將很有可能增加泛化性。下圖顯示的是svm受益於增加訓練樣本。

我們能夠使用函式learning_curve產生畫學習曲線必須的值,樣本數、訓練集的平均分數、驗證集的平均分數。

第二十八天

1 建立乙個名稱為itcast的資料庫。create database itcast 2 設計資料表tb student的字段結構,欄位有id 學號 name 姓名 age 年齡 enrolmentdate 入學時間 並選擇適合的資料型別。tb student資料表的字段結構如下表所示 欄位名 型別...

蛻變,第二十八天

1 什麼是包 包是模組的一種形式,包的本質就是乙個含有 init py檔案的資料夾 2.為什麼要有包 因為如果我們要把我們寫的一大堆功能分類處理,並且數量眾多,我們需要進行分檔案儲存,則需要用到包的概念 3 如何用包 匯入包就是在包下的 init py import from import 注意的問...

冥想第二十八天

今天5點多就不困了,天氣有點冷,醒了。告訴自己,都是正常的。確實是正常的。都是人最直觀的感受。改變固有思維,以前會聯想很多造成的,讓自己越來越膽小。可這一切都是那麼的正常。固定的生物鐘也改起了。一切放輕鬆。不怪以前的自己,畢竟自己一天比一天好。多學習別人身上的優點,不狹隘。不能因為環境冷了,而埋怨自...