交叉驗證模型

本文說明如何在 Azure 機器學習 設計工具中使用交叉驗證模型元件。 交叉驗證 是機器學習中經常用來評估數據集的變化性,以及透過該數據定型之任何模型的可靠性的技術。

交叉驗證模型元件會接受標示數據集的輸入,以及未定型的分類或回歸模型。 它會將數據集分成一些子集(折疊)、在每個折疊上建置模型,然後針對每個折疊傳回一組正確性統計數據。 藉由比較所有折疊的精確度統計數據,您可以解譯數據集的品質。 然後,您可以瞭解模型是否容易受到數據的變化的影響。

交叉驗證模型也會傳回數據集的預測結果和機率,讓您可以評估預測的可靠性。

交叉驗證的運作方式

  1. 交叉驗證會隨機將定型數據分割成折疊。

    如果您先前尚未分割數據集,演算法預設為10倍。 若要將數據集分割成不同的折疊數目,您可以使用 Partition 和 Sample 元件,並指出要使用的折疊數目。

  2. 元件會將折疊 1 的數據放在一邊,以用於驗證。 (這有時被稱為 鑒效組折疊。元件會使用其餘折疊來定型模型。

    例如,如果您建立五個折疊,元件會在交叉驗證期間產生五個模型。 元件會使用五分之四的數據來定型每個模型。 它會在剩餘的五分之一上測試每個模型。

  3. 在測試每個折疊的模型期間,元件會評估多個精確度統計數據。 元件所使用的統計數據取決於您正在評估的模型類型。 不同的統計數據可用來評估分類模型與回歸模型。

  4. 當所有折疊的建置和評估程式完成時,交叉驗證模型會產生一組效能計量和所有數據的評分結果。 檢閱這些計量,以查看任何單一折疊是否有高或低精確度。

交叉驗證的優點

評估模型的不同和常見方式是使用 分割數據將數據分割成定型和測試集,然後在定型數據上驗證模型。 但交叉驗證提供一些優點:

  • 交叉驗證會使用更多測試數據。

    交叉驗證會使用較大的數據空間中的指定參數來測量模型的效能。 也就是說,交叉驗證會使用整個定型數據集來進行定型和評估,而不是部分。 相較之下,如果您使用隨機分割所產生的數據來驗證模型,通常只會評估 30% 或更少的可用數據模型。

    不過,由於交叉驗證會透過較大的數據集多次定型和驗證模型,因此需要更密集的運算。 比在隨機分割上驗證需要更長的時間。

  • 交叉驗證會同時評估數據集和模型。

    交叉驗證不只是測量模型的精確度。 它也可讓您了解數據集的代表性,以及模型對數據變化的敏感性。

如何使用交叉驗證模型

如果您的數據集很大,交叉驗證可能需要很長的時間才能執行。 因此,您可以在建置和測試模型的初始階段使用交叉驗證模型。 在該階段中,您可以評估模型參數的優度(假設計算時間是可容忍的)。 接著,您可以使用已建立的參數搭配 定型模型和評估模型 元件,來定型和 評估模型

在此案例中,您會使用交叉驗證模型來定型和測試模型。

  1. 將交叉驗證模型元件新增至管線。 您可以在 Azure 機器學習 設計工具的模型評分與評估類別中找到它。

  2. 連線 任何分類或回歸模型的輸出。

    例如,如果您使用 兩個類別提升判定樹 進行分類,請使用您想要的參數來設定模型。 然後,將連接器從 分類器的未定型模型 埠拖曳至交叉驗證模型的相符埠。

    提示

    您不需要定型模型,因為交叉驗證模型會自動將模型定型為評估的一部分。

  3. 交叉驗證模型的數據集 埠上,連接任何標示的定型數據集。

  4. 在交叉驗證模型的右面板中,按兩下 [ 編輯] 資料行。 選取包含類別標籤或可預測值的單一數據行。

  5. 如果您想要在相同數據上連續執行重複交叉驗證的結果,請設定 Random 種子參數的值

  6. 提交管線。

  7. 如需報告的描述,請參閱結果一節。

結果

完成所有反覆項目之後,交叉驗證模型會建立整個數據集的分數。 它也會建立效能計量,讓您可用來評估模型的品質。

評分結果

元件的第一個輸出會提供每個數據列的源數據,以及一些預測值和相關機率。

若要檢視結果,請在管線中,以滑鼠右鍵按兩下 [交叉驗證模型] 元件。 選取 [ 可視化評分結果]。

新資料行名稱 描述
評分標籤 此數據行會在數據集結尾新增。 它包含每個數據列的預測值。
評分機率 此數據行會在數據集結尾新增。 它會指出評分標籤值的估計機率。
折疊編號 表示交叉驗證期間,每個數據列指派給之折疊之以零起始的索引。

評估結果

第二份報告會依折迭分組。 請記住,在執行期間,交叉驗證模型會隨機將定型數據分割成 n 折疊(預設為 10)。 在數據集的每個反覆專案中,交叉驗證模型會使用一個折疊做為驗證數據集。 它會使用其餘 n-1 折疊來定型模型。 每個 n 模型都會針對所有其他折疊中的數據進行測試。

在此報表中,折疊會以遞增順序依索引值列出。 若要排序任何其他數據行,您可以將結果儲存為數據集。

若要檢視結果,請在管線中,以滑鼠右鍵按兩下 [交叉驗證模型] 元件。 選取 [ 依折迭將評估結果可視化]。

資料行名稱 描述
折疊編號 每個折疊的標識碼。 如果您建立五個折疊,則會有五個數據子集,編號為 0 到 4。
折疊的範例數目 指派給每個折疊的數據列數目。 它們應該大致相等。

元件也包含每個折疊的下列計量,視您正在評估的模型類型而定:

  • 分類模型:精確度、召回率、F 分數、AUC、精確度

  • 回歸模型:平均絕對誤差、根平均平方誤差、相對絕對誤差、相對平方誤差和判斷係數

技術注意事項

  • 在進行交叉驗證之前,最好先將數據集正規化。

  • 交叉驗證模型比使用隨機分割數據集來驗證模型更耗費大量運算,而且需要更長的時間才能完成。 原因是交叉驗證模型會定型並多次驗證模型。

  • 當您使用交叉驗證來測量模型的精確度時,不需要將數據集分割成定型和測試集。

下一步

請參閱 Azure 機器學習 可用的元件集。