二元促進式決策樹

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

使用促進式決策樹演算法建立二元分類器

類別:機器學習/初始化模型/分類

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

模組概觀

本文描述如何在機器學習 Studio (傳統) 中使用二級促進式決策樹模組,以建立以促進式決策樹演算法為基礎的機器學習模型。

促進式決策樹是一種整體學習方法,其中,第二個樹狀更正第一個樹狀的錯誤,第三個樹狀更正第一個和第二個樹狀的錯誤,依此類推。 預測是以進行預測的全體樹狀為基礎。 如需進一步的技術詳細資料,請參閱本文的「 研究 」一節。

一般而言,只要正確設定,促進式決策樹是在各種機器學習工作上獲得最佳效能最簡單的方法。 但也是很耗用記憶體的學習模組之一,目前的實作將所有一切都保存在記憶體中。 因此,促進式決策樹模型可能無法處理某些線性學習工具可以處理的大型資料集。

如何設定 Two-Class 促進式決策樹

此課程模組會建立未定型的分類模型。 因為分類是監督式學習方法,若要定型模型,您需要「標記資料集」,其中包含所有資料列的標籤資料行和值。

您可以使用「 定型模型 」或「 微調模型超參數 模組來定型此模型類型。

  1. 在機器學習 Studio (傳統) 中,將促進式決策樹模組新增至您的實驗。

  2. 設定 [建立定型模式] 選項來指定要如何定型模型。

    • 單一參數:如果您知道要如何設定模型,您可以提供一組特定值做為引數。

    • 參數範圍:如果您不確定最佳參數,您可以使用 [ 微調模型超參數 ] 模組來尋找最佳參數。 您提供某個範圍的值,定型模組會逐一查看多個設定組合,以決定可產生最佳結果的值組合。

  3. 在 [每個樹狀的葉數上限] 中,指出可在任何樹狀中建立的終端節點 (分葉) 數目上限。

    增加此值,您可能會增加樹狀結構的大小,並取得較佳的精確度,風險是過度配適和較長的定型時間。

  4. 在 [每個分葉節點的樣本數下限] 中,指出在樹狀中建立任何終端節點 (分葉) 所需的案例數目。

    藉由增加此值,您會增加建立新規則的臨界值。 例如,若預設值是 1,即使單一案例可能會造成新規則的建立。 如果您將此值增加至 5,則定型資料至少要包含 5 個案例,才會符合相同的條件。

  5. 在 [學習速率] 中,輸入 0 和 1 之間的數字,以定義學習時的步驟大小。

    學習速率決定學習模組收斂到最佳解決方案的快慢。 如果步驟太大,您可能會超過最佳解決方案。 如果步驟太小,則定型會較久才收斂到最佳解決方案。

  6. 在 [建構的樹狀數目] 中,指出要在整體中建立的決策樹總數。 藉由建立多個決策樹,您或許能夠有較佳的涵蓋範圍,但是定型時間會拉長。

    此值也會控制視覺化定型模型時所顯示的樹狀結構數目。 如果您想要查看或列印單一樹狀結構,請將值設定為1。 不過,當您這樣做時,只有一個樹狀結構會在具有一組初始參數) 的樹狀結構 (產生,而不會執行進一步的反復專案。

  7. 在 [亂數種子] 中,選擇性輸入非負整數,作為隨機種子值。 指定種子可確保每次以相同資料和參數執行都能重現。

    隨機種子預設為 0,表示從系統時鐘取得初始種子值。 使用隨機種子連續執行可能會有不同結果。

  8. 選取 [ 允許未知的類別層級 ] 選項,在定型和驗證集中建立未知值的群組。

    如果您取消選取此選項,則模型只會接受訓練資料中包含的值。

    如果您允許未知的值,模型可能較不精確地知道已知值,但可能會針對新的 (未知的) 值提供更好的預測。

  9. 將模型定型。

    • 如果您將 [ 建立定型模式 ] 設定為 [ 單一參數],請連接已標記的資料集和「 定型模型 」模組。

    • 如果您將 [建立定型模式] 設定為 [參數範圍],請連接已標記的資料集,並使用調整模型超參數來定型模型。

    注意

    如果您將參數範圍傳遞給定型模型,則其只會使用參數範圍清單中的第一個值。

    如果您將一組參數值傳遞至 微調模型超參數 模組,當它預期每個參數的設定範圍時,會忽略這些值,並使用學習模組的預設值。

    如果您選取 [參數範圍] 選項,並對任何參數輸入單一值,則在整個掃掠期間都會使用您所指定的該單一值,即使其他參數在某個範圍的值之間變更亦然。

結果

定型完成後:

  • 若要查看在每個反復專案上建立的樹狀結構,請以滑鼠右鍵按一下 [ 定型模型 模組],然後選取要視覺化的 定型模型 。 如果您使用 [ 微調模型超參數],請以滑鼠右鍵按一下模組,然後選取 定型的最佳模型 ,將最佳模型視覺化。

    按一下每個樹狀結構,向下切入分割並查看每個節點的規則。

  • 若要使用模型進行評分,請將它連接到 評分模型,以預測新輸入範例的值。

範例

如需如何在機器學習中使用促進式決策樹的範例,請參閱 Azure AI 資源庫

  • 直接行銷:使用 二級促進式決策樹 演算法來預測客戶 appetency。

  • 飛行延遲預測:此範例會使用 二級促進式決策樹 演算法來判斷航班是否可能延遲。

  • 信用卡風險:此範例使用二級促進 式決策樹 演算法來預測風險。

技術說明

本節包含執行詳細資料和常見問題。

使用提示

  • 若要定型促進式決策樹模型,您必須提供多個資料實例。 如果資料集包含的資料列太少,則在定型過程中會產生錯誤。

  • 如果您的資料有遺漏值,您必須加入特徵的指標。

  • 一般而言,當特徵有些許相關時,決策樹會產生較好的結果。 如果功能有大量的熵 (也就是,它們並不相關) ,它們幾乎不相關,而且在樹狀結構中排序它們並不會產生很多預測性的重要性。 如果不是這種情況,您可以嘗試使用隨機的樹系模型。

    當您有比功能更多的範例時,提升效能也相當好,因為模型很容易過度學習。

  • 請勿將資料集標準化。 因為功能的處理是簡單、非參數、小於或大於比較,所以正規化或任何形式的非單純轉換函式可能不會有太大的影響。

  • 功能是定型先的離散化和分類收納,因此只能組成相當小的臨界值,即使是連續功能也被視為候選項目。

實作詳細資料

如需促進式決策樹演算法的詳細資訊,請參閱 貪婪函數近似值:漸層提升機器

機器學習中的促進式決策樹演算法會使用下列提升方法:

  1. 以弱式學習者的空集團開始。

  2. 每個訓練範例,取得目前集團的輸出。 這是集團中所有弱學習工具輸出的總和。

  3. 計算每個範例的損失函數漸層。

    這取決於工作是否為二元分類問題或回歸問題。

    • 在二進位分類模型中,會使用對數遺失,類似於羅吉斯迴歸。

    • 迴歸模型中,會使用平方遺失,梯度是目前的輸出減去目標。

  4. 使用僅定義為目標函式的漸層,來使用範例來配合 弱學習模組

  5. 要將弱式學習者以學習率指示的強度新增至集團,請移至步驟 2。

    在此實行中,弱學習工具是以步驟3中計算的漸層為基礎的最小平方迴歸樹狀結構。 樹狀結構會受制於下列限制:

    • 它們會依分葉的最大數目定型。

    • 每一個子節點都有最少的範例,以防止過度膨脹。

    • 每個決策節點是比對某些臨界值的單一功能。 如果該功能是小於或等於臨界值,會中斷一個路徑,如果大於臨界值,會中斷另一個路徑。

    • 每個分葉節點是常數值。

  6. 樹狀結構建立演算法大量會選取功能和臨界值,其分割會在步驟3中計算的漸層最小化平方損失。 分割的選取範圍會受限於每個分葉的最小定型範例數目。

    演算法會重複進行分割,直到達到最大的葉數,或直到沒有有效的分割可用為止。

模組參數

名稱 範圍 類型 預設 描述
每一個樹狀結構的葉數上限 >=1 整數 20 指定每一個樹狀結構允許的葉數上限
每一個葉節點的樣本數下限 >=1 整數 10 指定形成葉節點所需的案例數下限
學習率 [double.Epsilon;1.0] Float 0.2 指定初始學習速率
建構的樹狀結構數目 >=1 整數 100 指定在定型期間可建立的樹狀結構數目上限
亂數散播 任意 整數 輸入一個值做為模型使用的亂數產生器的種子。 保留空白代表預設值。
允許不明類別層級 任意 布林值 True 如果為 True,就會為每個分類的資料行建立額外層級。 測試資料集內若有任何層級是定型資料集內所有沒有的,則會對應到此額外層級。

輸出

名稱 類型 描述
未定型的模型 ILearner 介面 未定型的二元分類模型

另請參閱

分類
促進式決策樹迴歸
A-Z 模組清單