2 如何選擇模型? 機器學習

2021-08-20 09:40:36 字數 1946 閱讀 7581

由模型可以得到**值,而**值和真實值之間是存在差異的。接下來,我們需要回答以下問題:

當可用的模型有多個時,應該選哪乙個?

這稱之為模型選擇(model selection)問題。答案是,當然選擇

最優秀的那個模型。

那問題來了,模型的優秀程度具體指什麼?

優秀程度指的是模型對資料集的**準確程度,亦稱為

泛化能力(generalization ability)

。也就是,在給定資料集上,真實值和**值之間的差異越小,模型越優秀。

泛化誤差(generalization error):學習到的模型對未知資料**的誤差。

資料集可以劃分訓練資料集和測試資料集,

但當選擇的模型對訓練資料集**得很好,但對測試資料集**得很差,則產生

過擬合(over-fitting)

問題。模型越複雜,越有可能產生過擬合(

如下圖所示

因此選 擇模型時,若魚與熊掌不可兼得,則應該優先考慮對測試資料集的**準確程度。對**資料集**越準確,則模型的泛化能力越強,模型越優秀。

那如果對**資料集的準確程度不相上下呢?這時候,該如何選擇?

這時候,我們可以遵循

奧卡姆剃刀原理(occam's razor):在所有可選擇的模型中,對於同樣好的模型,應該盡量

選擇簡單的。

如何量化模型的優秀程度?

我們可以用損失函式去量化模型的優秀程度。

損失函式(loss function)/代價函式(cost function):

用來量化真實值和**值之間的差異的乙個函式,記做l(y,f(x))。影響因子是**值f(x)和真實值y,且它是乙個非負實數值。

有了損失函式後,我們可以構建起以下的概念體系。

訓練誤差(training error)

基於訓練資料集,**值跟真實值之間的差異,可用損失函式來量化差異。

測試誤差(test error)

基於測試資料集,**值與真實值之間的差異,可

用損失函式來量化差異。

誤差率(error rate)

選擇0-1函式作為損失函式,當**值=真實值,則損失函式值為1,當**值≠真實值,則損失函式值為0。可計算出**值≠真實值的概率。

準確率(accuracy rate)

誤差率的反面,**值=真實值的概率。

風險函式(risk function)/期望損失(expected loss)

總體資料集在應用損失函式f(x)後,所計算出來的**值和真實值的差異的期望值。

經驗風險(empirical risk)/經驗損失(empirical loss)

訓練資料集在應用損失函式f(x)後,所計算出來的**值和真實值的差異的期望值。實質就是訓練誤差。

參考:李航《統計學習方法》

機器學習 模型選擇

第八課 機器學習簡單介紹 第九節 模型選擇 引入包 import pandas as pd import numpy as np from sklearn.model selection import train test split 準備資料集 載入資料 iris data pd.read csv...

機器學習模型的選擇

首先明白乙個事實,那就是如果我們在某個訓練集上訓練擬合得到乙個模型,那麼顯然,這個模型在這個訓練集上的訓練錯誤很有可能會比實際上的泛化錯誤 generalization error 會低 模型overfitting 假如我們把資料集分成 訓練集 和 測試集。然後,在訓練集上訓練得到幾個模型,我們想從...

機器學習模型 如何口述機器學習模型原理

重磅乾貨,第一時間送達 有時碰到跟別人聊起模型的熟悉時,不免要闡述下模型的原理,但一般口頭交流都比較難,因為腦海裡面都是一些公式,似乎從功利角度有必要把模型原理用文字表達一遍,所以自己整理了下機器學習的部分,有遺漏或者不對的地方也請多多指教 線性回歸 首先我們會定乙個函式假定y和x的關係,如y wx...