日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網

  • 公眾號
    • 汽車測試網

    • 在線課堂

    • 電車測試

首頁 > 汽車技術 > 正文

機器學習之全面了解模型驗證

2021-03-04 00:53:59·  來源:MATLAB  作者:MathWorks  
 
作者:Laura Martinez Molera ◆??◆??◆??◆ 本專欄我們將和大家一起探討機器學習與數(shù)據科學的主題,解釋相關背景知識,并就一些來自 MATLAB 和 Simulink 社區(qū)的問題進行解答。 本文主要介紹模型驗證及其相關主題,如過擬合和超參數(shù)調優(yōu)。我將概括介紹該主題
作者:Laura Martinez Molera
 
本專欄我們將和大家一起探討機器學習與數(shù)據科學的主題,解釋相關背景知識,并就一些來自 MATLAB 和 Simulink 社區(qū)的問題進行解答。
本文主要介紹模型驗證及其相關主題,如過擬合和超參數(shù)調優(yōu)。我將概括介紹該主題及其重要性,然后探討以下四個問題:
1. 模型準確率為什么會變差?
2. 訓練數(shù)據集和測試數(shù)據集有什么區(qū)別?
3. 驗證數(shù)據集用來做什么?
4. 如何在改進模型的同時避免過擬合?
 
引言
模型驗證是機器學習的一項基礎方法。如果使用得當,它將幫助您評估機器學習模型在新數(shù)據上的表現(xiàn)。
這可以提供兩方面的幫助:
  • 它可以幫助您確定要使用的算法和參數(shù)。
  • 它可以防止訓練過程中出現(xiàn)過擬合。
當我們用手頭的數(shù)據集解決問題時,找到合適的機器學習算法來創(chuàng)建模型非常重要。每個模型都有自己的優(yōu)點和缺點。
例如,某些算法能更好地處理小型數(shù)據集,另一些算法則在處理大量高維數(shù)據時表現(xiàn)出色。
因此,兩個不同的模型可能基于同一個數(shù)據集預測出不同的結果,并且具有不同的準確度。
為您的數(shù)據找到最佳模型是一個交互式過程,需要測試不同的算法以最大程度地減少模型誤差。
控制機器學習算法行為的參數(shù)稱為超參數(shù)。
根據超參數(shù)取值的差異,所得的模型可能大相徑庭。因此,通過調整超參數(shù)的值,您可以得到不同并且有可能更好的模型。
如果沒有模型驗證,很容易不知不覺將模型調整到過擬合的程度。
您的訓練算法應該調整參數(shù)以最小化損失函數(shù),但有時會做得太過。
發(fā)生這種情況時,模型將變得過擬合,也就是說,模型過于復雜,不能很好地處理新數(shù)據。
我將在下面的問題中更深入地探討這一點。
要測試您的模型在新數(shù)據上的表現(xiàn),可以使用模型驗證,方法是對數(shù)據集進行劃分,然后使用一個子集訓練算法,使用其余數(shù)據測試算法。
由于模型驗證并未將全部數(shù)據用于構建模型,因此是防止訓練過程中出現(xiàn)過擬合的一種常用方法。
 
小貼士
如果您想深入了解有關使用 MATLAB 進行交叉驗證和超參數(shù)優(yōu)化的函數(shù)和語法,請參見:模型構建和評估(https://ww2.mathworks.cn/help/stats/classification-model-building-and-assessment.html)。
現(xiàn)在討論第一個問題。

Q1、我的模型可以很好地處理訓練數(shù)據,但是處理新數(shù)據時,結果并不理想。我該如何解決這個問題? 
看樣子您的模型是過擬合了,也就是說您的模型完全跟著訓練集走,但不知道如何對新輸入或數(shù)據作出響應。模型對訓練所用數(shù)據集的響應“好過頭了”。
一開始,過擬合模型可能會顯得很成功,因為它在訓練集上的誤差很小。然而,模型在測試集上的誤差會變大,也就不那么準確了。
模型過擬合的最常見原因是訓練數(shù)據不足,因此最好的解決方法是收集更多的數(shù)據,更好地訓練模型。
但是,您不僅需要更多的數(shù)據,還需要確保這些數(shù)據足以代表模型的復雜性和多樣性,以便模型知道如何對其作出響應。
 

Q2、我知道數(shù)據需要分組,但是我以為測試數(shù)據集和訓練數(shù)據集的用途相同。它們之間有什么區(qū)別?
實際上,測試數(shù)據集和訓練數(shù)據集是不同的。在前面介紹模型驗證時,我談到了模型驗證如何將數(shù)據劃分為這樣兩個子集,接下來我深入探討一下。
模型驗證使用隨機劃分到不同子集的數(shù)據,通過調整模型來對新輸入作出正確的響應,從而降低模型過擬合的風險。兩種典型的數(shù)據子集如下:
  • 訓練集 - 這部分數(shù)據用于訓練和擬合模型并確定參數(shù),通常占數(shù)據的 60-70%,需要反映模型的復雜性和多樣性。
  • 測試集 - 這部分數(shù)據用于評估模型的性能,通常占數(shù)據的 30-40%,同樣需要反映模型的復雜性和多樣性。
由于這兩個數(shù)據集都需要反映模型的復雜性和多樣性,因此數(shù)據應該是隨機劃分的。
這種方法也會降低模型過擬合的風險,幫助我們得出更準確但更簡單的模型,以將其結果用于研究。
如果我們使用非隨機選擇的數(shù)據集訓練模型,則就這一特定數(shù)據子集而言,模型將得到很好的訓練。
問題在于,非隨機數(shù)據不能代表其余數(shù)據,也不能代表我們要用模型處理的新數(shù)據。
比如說,我們要分析一個城鎮(zhèn)的能源消耗。如果我們用于訓練和測試的數(shù)據集不是隨機的,只包含周末的能源消耗數(shù)據(通常低于工作日),那么當我們將該模型應用于新數(shù)據(例如新月份)時,它會是不準確的,因為它只代表周末。
為了形象說明,我們來看兩個基于同一訓練數(shù)據集的模型。這里使用的是機器學習入門之旅(https://ww2.mathworks.cn/learn/tutorials/machine-learning-onramp.html)中的一個基本示例。
以下是一個簡單模型和一個復雜模型:
簡單模型
84% 準確度
復雜模型
100% 準確度
我們會看到,復雜模型可以更好地適應訓練數(shù)據,其準確度為 100%,而簡單模型為 84%。
我們會傾向于認為復雜模型勝出。
但是,讓我們看看如果將測試數(shù)據集(未在訓練中使用的新數(shù)據)輸入這些模型會有什么結果:
簡單模型
70% 準確度
復雜模型
60% 準確度
比較兩種模型的性能時,我們會發(fā)現(xiàn)簡單模型的準確度從 84% 下降到 70%;
然而,相比復雜模型 40 個百分點的跌幅(從 100% 降至 60%),這點變化就不那么明顯了。
總結一下,對此分析而言,簡單模型更好、更準確,同時我們也看到,使用測試數(shù)據集來評估模型非常重要。
最后,還有一個建議。為了降低變異性,不妨使用數(shù)據集的多種劃分進行多輪模型驗證,以使模型更好地適應您的分析。
這種方法稱為 K 折交叉驗證。了解其他交叉驗證方法,您可以訪問:https://ww2.mathworks.cn/discovery/cross-validation.html。
我使用的示例可以在機器學習入門之旅中找到。您可以通過這個鏈接在 PC 端訪問這個兩小時的免費、交互式學習課程:https://ww2.mathworks.cn/learn/tutorials/machine-learning-onramp.html。
 
Q3、我以為只要有訓練集和測試集就夠了;一定還要有驗證數(shù)據集嗎?我真的需要再次拆分我的數(shù)據嗎?
很遺憾,驗證集再次遭到誤解。
這是一個常見的問題。一般情況下,沒有人會質疑訓練集和測試集的必要性,但驗證集的必要性則不是那么確鑿。
簡單的解釋是,超參數(shù)調整中需要使用驗證集,以查看調整是否有效,換句話說,能否在完整模型上進行迭代。但是,有時人們錯誤地使用驗證集來描述測試數(shù)據集。
下面,我會詳細說明驗證數(shù)據集的重要性:
  • 驗證集 - 此數(shù)據集用于在調整模型的超參數(shù)時評估模型的性能。該數(shù)據用于更頻繁的評估,并用于更新超參數(shù),因此驗證集會間接影響模型。調整模型的超參數(shù)并不是絕對必要的,但通常建議這樣做。
  • 測試集 - 此數(shù)據集用于對訓練集中的最終模型擬合進行無偏評估。此數(shù)據集只在模型訓練完成后使用一次,并且不影響模型;它只是用于計算性能。
總結一下,訓練數(shù)據集用于訓練可用的各種算法,驗證數(shù)據集用于比較不同算法(使用不同的超參數(shù))的性能,并決定采用哪一種算法。測試數(shù)據集用于了解特定模型的準確度、敏感度和性能。
Q4、我想改進我的模型,但又擔心過擬合。我該怎么做?
這是個好問題。
在本文的簡介部分,我簡要提到了超參數(shù)可以控制機器學習算法的行為。接下來,我將對此進行更深入的介紹。
您可以將超參數(shù)想像成自行車的部件:我們可以通過改變它們來影響系統(tǒng)的性能。
假設您購買了一輛二手自行車。車架尺寸合適,但如果您調整一下座椅高度,收緊或放松剎車,給鏈條上油或安裝適合地形的輪胎,這輛自行車可能會更高效。
外部因素也會影響您的騎行,但是有了一輛優(yōu)化過的自行車,同一段行程會變得更輕松。類似地,優(yōu)化超參數(shù)將幫助您改進模型。
下面是一個機器學習示例。在人工神經網絡 (ANN) 中,超參數(shù)是確定網絡結構的變量,例如人工神經元的隱藏層數(shù)和每一層中的人工神經元數(shù);或者是定義如何訓練模型的變量,例如學習率,即學習過程的速度。
超參數(shù)是在學習過程開始之前定義的。相對地,ANN 的參數(shù)是每個人工神經元連接的系數(shù)或權重,并在訓練過程中進行調整。
典型的神經網絡架構
超參數(shù)是在訓練或學習過程開始之前確定的模型參數(shù),它位于模型的外部;換句話說,如果您想更改超參數(shù),需要手動更改。
自行車座椅不會自行調整,您需要在出發(fā)前先行調整;類比到機器學習模型中,就是使用驗證數(shù)據集進行調整。
相對地,其他參數(shù)是在訓練過程中使用訓練數(shù)據集確定的。
訓練和測試模型所需的時間取決于其超參數(shù),模型的超參數(shù)越少,越易于驗證或調整,因此您可以減小驗證數(shù)據集的大小。
非凸曲面示例
大多數(shù)機器學習問題都是非凸的。
這意味著根據我們?yōu)槌瑓?shù)選擇的值,我們可以得到完全不同的模型,并且,通過更改超參數(shù)的值,我們可以找到不同的、更好的模型。
這就是驗證數(shù)據集的重要之處,它讓您能夠使用不同的超參數(shù)進行迭代,從而為您的分析找到最佳模型。
如果您想進一步了解超參數(shù),不妨看看 Adam Filion 這段 5 分鐘的視頻,其中相當扼要地介紹了超參數(shù)優(yōu)化。

以上就是本文的全部內容。希望您喜歡這個“模型驗證”專欄。如果您希望看到更多其他機器學習與數(shù)據科學主題的探討,歡迎留言告訴我們。
分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25