<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 測試和驗證數據集之間有什么區別? > 原文: [https://machinelearningmastery.com/difference-test-validation-datasets/](https://machinelearningmastery.com/difference-test-validation-datasets/) 驗證數據集是訓練模型時保留的數據樣本,用于在調整模型的超參數時對模型技能進行估計。 驗證數據集不同于測試數據集,該測試數據集也從模型的訓練中退回,而是用于在最終模型之間進行比較或選擇時給出最終調整模型的技能的無偏估計。 在應用機器學習中,關于驗證數據集的確切內容以及它與測試數據集的不同之處存在很多混淆。 在這篇文章中,您將發現訓練,測試和驗證數據集的清晰定義,以及如何在您自己的機器學習項目中使用每個數據集。 閱讀這篇文章后,你會知道: * 機器學習領域的專家如何定義訓練,測試和驗證數據集。 * 實踐中驗證和測試數據集之間的區別。 * 在評估模型時,可用于充分利用驗證和測試數據集的過程。 讓我們開始吧。 ![What is the Difference Between Test and Validation Datasets?](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2017/07/What-is-the-Difference-Between-Test-and-Validation-Datasets.jpg) 測試和驗證數據集之間有什么區別? [veddderman](https://www.flickr.com/photos/28055719@N02/3241773337/) 的照片,保留一些權利。 ## 教程概述 本教程分為4個部分;他們是: 1. 什么是專家的驗證數據集? 2. 訓練,驗證和測試數據集的定義 3. 驗證數據集不夠用 4. 驗證和測試數據集消失 ## 什么是專家的驗證數據集? 我發現確切地看到從業者和專家如何描述數據集很有用。 在本節中,我們將根據一些頂級機器學習文本和參考資料,查看訓練,測試和驗證數據集的定義方式以及它們的區別。 通常,術語“_驗證集_”可與術語“_測試集_”互換使用,并且是指從訓練模型中阻止的數據集的樣本。 對訓練數據集的模型技能的評估將導致偏差得分。因此,在保留的樣本上評估模型,以給出模型技能的無偏估計。這通常稱為算法評估的訓練測試分割方法。 > 假設我們想要估計與在一組觀察上擬合特定統計學習方法相關的測試誤差。驗證集方法[...]是一項非常簡單的策略。它涉及將可用的觀察組隨機分成兩部分,即訓練集和驗證集或保持集。該模型適合訓練集,擬合模型用于預測驗證集中觀察的響應。得到的驗證集錯誤率 - 通常在定量響應的情況下使用MSE評估 - 提供測試錯誤率的估計。 - Gareth James等,第176頁,[統計學習導論:應用于R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) ,2013。 我們可以直接在Kuhn和Johnson的優秀文本“Applied Predictive Modeling”中看到可互換性。在這個例子中,他們清楚地指出,最終的模型評估必須在先前未使用過的數據集上進行,用于訓練模型或調整模型參數。 > 理想情況下,應該對未用于構建或微調模型的樣本評估模型,以便它們提供無偏見的模型有效性。當手頭有大量數據時,可以留出一組樣本來評估最終模型。 “訓練”數據集是用于創建模型的樣本的通用術語,而“測試”或“驗證”數據集用于限定表現。 - Max Kuhn和Kjell Johnson,第67頁, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013 傳統上,用于評估最終模型表現的數據集可稱為“測試集”。 Russell和Norvig在其開創性的AI教科書中重申了保持測試集完全分離的重要性。他們指的是以任何方式使用來自測試集的信息“偷看”。他們建議完全鎖定測試裝置,直到所有模型調整完成。 > 偷看是使用測試集表現來選擇假設并對其進行評估的結果。避免這種情況的方法是真正保持測試集的鎖定,直到你完全完成學習,并希望獲得對最終假設的獨立評估。 (然后,如果你不喜歡結果......如果你想回去找一個更好的假設,你必須獲得并鎖定一個全新的測試集。) - Stuart Russell和Peter Norvig,第709頁,[人工智能:現代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009(第3版) 重要的是,Russell和Norvig評論說,用于擬合模型的訓練數據集可以進一步分為訓練集和驗證集,并且它是訓練數據集的這個子集,稱為驗證集,可用于獲取早期估計模型的技能。 > 如果測試集被鎖定,但您仍希望測量未見數據的表現,作為選擇良好假設的一種方法,則將可用數據(不包括測試集)劃分為訓練集和驗證集。 - Stuart Russell和Peter Norvig,第709頁,[人工智能:現代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009(第3版) 驗證集的這一定義得到了該領域其他開創性文本的證實。一個好的(和更老的)例子是Ripley的書“模式識別和神經網絡”中的術語表。具體來說,訓練,驗證和測試集的定義如下: > - 訓練集:用于學習的一組示例,即適合分類器的參數。 > > - 驗證集:用于調整分類器參數的一組示例,例如,用于選擇神經網絡中隱藏單元的數量。 > > - 測試集:一組僅用于評估完全指定分類器表現的示例。 - Brian Ripley,第354頁,[模式識別和神經網絡](http://www.amazon.com/dp/0521717701?tag=inspiredalgor-20),1996 這些是這些術語的推薦定義和用法。 這些定義是規范的一個很好的例子是它們在著名的神經網絡常見問題解答中的重復。除了重申Ripley的詞匯表定義之外,它繼續討論在應用機器學習中常見的濫用術語“測試集”和“驗證集”。 > 關于機器學習的文獻經常顛倒“驗證”和“測試”集的含義。這是人工智能研究中最常見的術語混淆的例子。 > > 關鍵的一點是,根據NN [神經網絡]文獻中的標準定義,測試集從不用于在兩個或更多網絡中進行選擇,因此測試集上的誤差提供了對泛化誤差的無偏估計(假設測試集代表人口等)。 - [主題:人口,樣本,訓練集,設計集,驗證集和測試集是什么?](ftp://ftp.sas.com/pub/neural/FAQ.html#A_data) 您是否知道這些術語的任何其他明確定義或用法,例如:論文或教科書中的引用? 請在下面的評論中告訴我。 ## 訓練,驗證和測試數據集的定義 為了重申研究上述專家的研究結果,本節提供了對這三個術語的明確定義。 * **Training Dataset** :用于擬合模型的數據樣本。 * **驗證數據集**:用于在調整模型超參數的同時提供適合訓練數據集的模型的無偏估計的數據樣本。隨著驗證數據集上的技能被合并到模型配置中,評估變得更加偏向。 * **測試數據集**:用于提供適合訓練數據集的最終模型的無偏估計的數據樣本。 我們可以使用偽代碼草圖制作這個具體內容: ```py # split data data = ... train, validation, test = split(data) # tune model hyperparameters parameters = ... for params in parameters: model = fit(train, params) skill = evaluate(model, validation) # evaluate final model for comparison with other models model = fit(train) skill = evaluate(model, test) ``` 以下是一些額外的澄清說明: * 驗證數據集還可以在其他形式的模型準備中發揮作用,例如特征選擇。 * 最終模型可以適合訓練和驗證數據集的總和。 這些定義對您的用例是否清楚? 如果沒有,請在下面提問。 ## 驗證數據集不夠用 還有其他方法可以計算無偏見的(或在驗證數據集的情況下逐漸更偏向)對未見數據的模型技能的估計。 一個流行的例子是使用k-fold交叉驗證來調整模型超參數而不是單獨的驗證數據集。 在他們的書中,庫恩和約翰遜有一個標題為“數據拆分建議”的部分,其中列出了使用唯一“測試集”(或驗證集)的限制: > 如前所述,針對單個獨立測試集有一個強大的技術案例: > > - 測試集是對模型的單一評估,并且對表征結果中的不確定性的能力有限。 > - 按比例大的測試集將數據劃分為增加表現估計偏差的方式。 > - 樣本量小: > - 模型可能需要每個可能的數據點來充分確定模型值。 > - 測試集的不確定性可能相當大,以至于不同的測試集可能產生非常不同的結果。 > - 重采樣方法可以合理預測模型在未來樣本上的表現。 - Max Kuhn和Kjell Johnson,第78頁, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013 由于表現估計的理想低偏差和方差特性,他們繼續推薦使用10倍交叉驗證的小樣本量。在比較模型表現的情況下,他們建議使用bootstrap方法,因為表現估計的方差很小。 對于較大的樣本量,他們再次建議采用10倍交叉驗證方法。 ## 驗證和測試數據集消失 在現代應用機器學習中,您很可能不會看到對訓練,驗證和測試數據集的引用。 如果從業者選擇使用與訓練數據集的k折交叉驗證來調整模型超參數,則對“驗證數據集”的引用消失。 我們可以使用偽代碼草圖使這個具體如下: ```py # split data data = ... train, test = split(data) # tune model hyperparameters parameters = ... k = ... for params in parameters: skills = list() for i in k: fold_train, fold_val = cv_split(i, k, train) model = fit(fold_train, params) skill_estimate = evaluate(model, fold_val) skills.append(skill_estimate) skill = summarize(skills) # evaluate final model for comparison with other models model = fit(train) skill = evaluate(model, test) ``` 如果使用訓練數據集的模型超參數的交叉驗證嵌套在模型的更廣泛的交叉驗證中,則對“測試數據集”的引用也可能消失。 最終,您剩下的就是來自域的數據樣本,我們可能會繼續將其稱為訓練數據集。 ## 進一步閱讀 如果您要深入了解,本節將提供有關該主題的更多資源。 * 維基百科上的[測試集](https://en.wikipedia.org/wiki/Test_set) * [主題:人口,樣本,訓練集,設計集,驗證集和測試集是什么?](ftp://ftp.sas.com/pub/neural/FAQ.html#A_data) 神經網絡常見問題解答 * [統計學習簡介:應用于R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) ,2013 * [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013 * [人工智能:現代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009 * [模式識別和神經網絡](http://www.amazon.com/dp/0521717701?tag=inspiredalgor-20),1996 你知道關于這個主題的任何其他好資源嗎?請在下面的評論中告訴我。 ## 摘要 在本教程中,您發現圍繞術語“驗證數據集”和“測試數據集”存在很多混淆,以及在評估您自己的機器學習模型的技能時如何正確導航這些術語。 具體來說,你學到了: * 在評估模型時,“訓練數據集”,“驗證數據集”和“測試數據集”指的是明確的先例。 * “驗證數據集”主要用于描述調整超參數和數據準備時的模型評估,“測試數據集”主要用于描述最終調整模型在與其他最終模型進行比較時的評估。 * 當采用k-fold交叉驗證等替代重采樣方法時,“驗證數據集”和“測試數據集”的概念可能會消失,尤其是在重新采樣方法嵌套時。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看