機器學習中的交叉驗證:4 種類型的交叉驗證

已發表: 2020-11-30

目錄

介紹

模型開發是數據科學項目生命週期中的關鍵步驟,我們將嘗試使用基於業務問題的監督或無監督算法的不同類型機器學習模型來訓練我們的數據集。

我們知道我們有很多模型可以用來解決業務問題,我們需要確保我們在這個階段結束時選擇的任何模型都應該在看不見的數據上表現良好。 因此,我們不能只使用評估指標來選擇性能最佳的模型。

除了可以幫助我們決定可以部署到生產環境的最終機器學習模型的指標之外,我們還需要更多的東西。

確定計算變量之間關係的數學結果是否可以作為數據描述的過程稱為驗證 通常,模型的誤差估計是在訓練數據集上訓練模型後進行的,更廣為人知的是殘差評估。

在這個過程中,我們通過計算預測響應和原始響應之間的差異來測量訓練誤差。 但是這個指標不能被信任,因為它只適用於訓練數據。 模型可能欠擬合擬合數據。

因此,這種評估技術或任何其他評估指標的問題在於,它不能說明模型對看不見的數據集的執行情況。 有助於了解我們模型的技術稱為交叉驗證

在本文中,我們將更多地了解不同類型的交叉驗證技術、每種技術的優缺點。 讓我們從交叉驗證的定義開始。

交叉驗證

交叉驗證是一種重採樣技術,有助於使我們的模型確定其對看不見的數據的效率和準確性。 它是一種通過在可用輸入數據集的子集上訓練幾個其他機器學習模型並在數據集的子集上評估它們來評估機器學習模型的方法。

我們有不同類型的交叉驗證技術,但讓我們看看交叉驗證的基本功能:第一步是將清理後的數據集劃分為 K 個大小相等的分區。

  1. 然後我們需要將Fold-1作為測試折疊,而另一個K-1作為訓練折疊併計算測試折疊的分數。
  2. 我們需要對所有折疊重複步驟 2,將另一個折疊作為測試,同時保持作為火車。
  3. 最後一步是取所有折疊分數的平均值。

閱讀:面向初學者的機器學習項目

交叉驗證的類型

1. 堅持法

該技術適用於刪除訓練數據集的一部分並將其發送到在其餘數據集上訓練的模型以獲得預測。 然後我們計算誤差估計,它告訴我們模型在看不見的數據集上的表現。 這被稱為保持方法。

優點

  1. 此方法完全獨立於數據。
  2. 該方法只需要運行一次,因此具有較低的計算成本。

缺點

  1. 鑑於數據規模較小,性能會受到較大差異的影響。

2. K 折交叉驗證

在數據驅動的世界中,永遠沒有足夠的數據來訓練你的模型,除此之外,刪除其中的一部分進行驗證會帶來更大的欠擬合問題,並且我們可能會丟失數據集中的重要模式和趨勢,進而增加偏差。 因此,理想情況下,我們需要一種方法,為模型訓練提供大量數據,並為驗證集留下大量數據。

在 K-Fold 交叉驗證中,將數據劃分為 k 個子集,或者我們可以將其視為重複 k 次的保持方法,這樣每次將 k 個子集中的一個用作驗證集,另一個 k-1子集作為訓練集。 誤差在所有 k 次試驗中取平均值,以獲得我們模型的總效率。

我們可以看到,每個數據點將恰好在驗證集中出現一次,並且將在訓練集中出現 k-1 次。 這有助於我們減少偏差,因為我們使用大部分數據進行擬合,並減少方差,因為大部分數據也用於驗證集中。

優點

  1. 這將有助於克服計算能力的問題。
  2. 如果數據中存在異常值,模型可能不會受到太大影響。
  3. 它幫助我們克服可變性問題。

缺點

  1. 不平衡的數據集會影響我們的模型。

3.分層 K 折交叉驗證

對於不平衡的數據集,K 折交叉驗證技術將無法按預期工作。 當我們有一個不平衡的數據集時,我們需要對 K 折交叉驗證技術進行輕微更改,以便每個折包含與完整的每個輸出類的樣本大致相同的層。 在 K 折交叉驗證中使用層的這種變體稱為分層 K 折交叉驗證。

優點

  1. 它可以使用超參數調整來改進不同的模型。
  2. 幫助我們比較模型。
  3. 它有助於減少偏差和方差。

4. Leave-P-Out 交叉驗證

在這種方法中,我們從總共 n 個數據點中的訓練數據中保留 p 個數據點,然後使用 np 個樣本來訓練模型,並使用 p 個點作為驗證集。 對所有組合重複此操作,然後平均誤差。

優點

  1. 它具有零隨機性
  2. 偏差會更低

缺點

  1. 這種方法是窮舉的並且在計算上是不可行的。

另請閱讀:機器學習職業

結論

在本文中,我們了解了機器學習模型驗證在數據科學項目生命週期中的重要性,了解了什麼是驗證和交叉驗證,探索了不同類型的交叉驗證技術,了解了一些這些技術的優點和缺點。

如果您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為工作專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業、IIIT- B 校友身份、5 個以上實用的實踐頂點項目和頂級公司的工作協助。

機器學習中對交叉驗證的需求是什麼?

交叉驗證是一種機器學習技術,其中訓練數據分為兩部分:訓練集和測試集。 訓練集用於構建模型,測試集用於評估模型在生產中的表現。 這樣做的原因是,您構建的模型可能在現實世界中表現不佳。 如果您不交叉驗證您的模型,則存在您構建的模型在訓練數據上運行良好但在實際數據上表現不佳的風險。

什麼是 k 折交叉驗證?

在機器學習和數據挖掘中,k 折交叉驗證,有時稱為留一法交叉驗證,是一種交叉驗證形式,其中訓練數據被分成 k 個近似相等的子集,每個 k- 1 個子集依次用作測試數據,其餘子集用作訓練數據。 K 通常為 10 或 5。K 折交叉驗證在模型選擇中特別有用,因為它減少了泛化誤差估計的方差。

交叉驗證的優點是什麼?

交叉驗證是一種驗證形式,其中數據集被劃分為訓練集和測試集(或交叉驗證集)。 然後使用該集合來測試模型的準確性。 換句話說,它為您提供了一種方法,可以根據您的數據樣本來衡量您的模型有多好。 例如,它用於估計由訓練輸入和測試輸入之間的差異引起的模型誤差。