機器學習十二 誤差原因與模型複雜度

2021-08-04 17:25:28 字數 1285 閱讀 2645

誤差原因(error):用於測量模型效能的基本指標。

在模型**中,模型可能出現的誤差來自兩個主要**,即:因模型無法表示基本資料的複雜度而造成的

偏差(bias),或者因模型對訓練它所用的有限資料過度敏感而造成的

方差(variance)

偏差:準確率和欠擬合

如果模型具有足夠的資料,但因不夠複雜而無法捕捉基本關係,則會出現偏差。這樣一來,模型一直會系統地錯誤表示資料,從而導致準確率降低。這種現象叫做

欠擬合(underfitting)

簡單來說,如果模型不適當,就會出現偏差。舉個例子:如果物件是按顏色和形狀分類的,但模型只能按顏色來區分物件和將物件分類(模型過度簡化),因而一直會錯誤地分類物件。

方差:精度和過擬合

在訓練模型時,通常使用來自較大訓練集的有限數量樣本。如果利用隨機選擇的資料子集反覆訓練模型,可以預料它的**結果會因提供給它的具體樣本而異。在這裡,方差(variance)用來測量**結果對於任何給定的測試樣本會出現多大的變化。

出現方差是正常的,但方差過高表明模型無法將其**結果泛化到更多的資料。對訓練集高度敏感也稱為過擬合(overfitting),而且通常出現在模型過於複雜或我們沒有足夠的資料支援它時。

通常,可以利用更多資料進行訓練,以降低模型**結果的方差並提高精度。如果沒有更多的資料可以用於訓練,還可以通過限制模型的複雜度來降低方差。

學習曲線與模型複雜度

學習曲線可以讓我們通過資料點來了解模型表現的好壞。

from sklearn.learning_curve import learning_curve # sklearn 0.17

from sklearn.model_selection import learning_curve # sklearn 0.18

learning_curve(

estimator, x, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)

這裡estimator是我們正在用來**的模型,例如它可以是gaussiannb(),x和y是特徵和目標。cv是交叉驗****,例如kfold(),'n_jobs'是平行運算的引數,train_sizes是多少數量的訓練資料用來生成曲線。

改進模型的有效性關鍵在於通過找出正確的模型複雜度來找到最大限度降低偏差和方差的最有效點。當然,資料越多,模型隨著時間推移會變得越好。

機器學習基礎之模型評估與誤差分析

fp false positive 假陽 tp true positive 真陽 fn false negative 假陰 tn true negative 真陰 precision 準確率 p t ptp fp p frac p tp f ptp recall 召回率 r t ptp fn r f...

優達(Udacity) 機器學習基礎 誤差原因

資料足夠,模型不夠複雜 過度簡化 欠擬合 結果對於任何給定的測試樣本會出現多大的變化 對訓練集高度敏感 過擬合 overfitting 可以利用sklearn中的學習曲線來辨別模型表現的好壞。引入模組 from sklearn.model selection import learning curv...

機器學習中學習曲線與模型複雜化

學習曲線 讓我們根據模型通過視覺化圖形從資料中學習的能力來 偏差與方差之間的關係。機器學習中的學習曲線是一種視覺化圖形,能根據一系列訓練例項中的訓練和測試資料比較模型的指標效能。在檢視資料與誤差之間的關係時,我們通常會看到,隨著訓練點數量的增加,誤差會趨於下降。由於我們嘗試構建從經驗中學習的模型,因...