二元羅吉斯迴歸

重要

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. 在 [L1 正規化權數] 和 [L2 正規化權數] 中,輸入要用於正規化參數 L1 和 L2 的值。 非零值建議用於兩者。

    「正規化」是以極端係數值來懲罰模型,以防止過度學習的一種方法。 正規化的運作方式是將假設錯誤加上係數值相關聯的懲罰。 因此,具有極端係數值的精確模型受較多懲罰,而具有較保守值的不精確模型受到較少懲罰。

    L1 與 L2 regularization 有不同的效果,並使用。

    • L1 可以套用到疏鬆的模型,使用高維度資料時,這是很有用。

    • 相較之下,L2 regularization 是不是疏鬆的資料。

    此演算法支援 L1 和 L2 正規化值的線性組合:也就是說,如果 x = L1y = L2,則 ax + by = c 定義正規項的線性範圍。

    注意

    想要深入了解 L1 和 L2 正規化嗎? 下列文章以羅吉斯迴歸和神經網路模型的程式碼範例,討論 L1 和 L2 正規化的不同之處及其如何影響模型擬合:機器學習的 L1 和 L2 正規化

    對於羅吉斯迴歸模型,已設計出 L1 和 L2 項的各種線性組合:例如,彈性網路正規化。 建議您參考這些組合,為您的模型定義有效的線性組合。

  5. 在 [L-BFGS 的記憶體大小] 中,指定要用於 L-BFGS 最佳化的記憶體數量。

    L-BFGS 代表 "limited memory Broyden-Fletcher-Goldfarb-Shanno"。 這是常用於參數估計的最佳化演算法。 此參數指出要儲存的通過位置和梯度數目,以計算下一個階梯。

    此最佳化參數限制用來計算下一個步驟和方向的記憶體數量。 當您指定較少的記憶體時,訓練是更快,但較不精確。

  6. 在 [亂數種子] 中,輸入整數值。 如果您想要讓結果在相同實驗的多個回合之間重現,則定義種子值是很重要的。

  7. 選取 [ 允許未知的類別層 級] 選項,可在每個類別資料行中建立額外的「未知」層級。 如果您這樣做,在測試資料集中) 的任何 (層級值在訓練資料集中未提供的值,都會對應到這個「未知」層級。

  8. 將已加上標籤的資料集新增至實驗,並連接其中一個 定型模組

    • 如果您將 [ 建立定型模式] 設定為 [ 單一參數],請使用「 定型模型 」模組。

    • 如果您將 [ 建立定型模式] 設定為 [ 參數範圍],請使用 [ 微調模型超參數 ] 模組。

    注意

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

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

    如果您選取 [ 參數範圍 ] 選項,並輸入任何參數的單一值,則整個清除過程將會使用您所指定的單一值,即使其他參數會在某個範圍的值之間變更。

  9. 執行實驗。

結果

定型完成後:

  • 若要查看模型參數的摘要,以及從定型學到的功能加權,請以滑鼠右鍵按一下 [ 定型模型 ] 或 [ 微調模型超參數] 的輸出,然後選取 [ 視覺化]。

  • 若要對新資料進行預測,請使用定型的模型和新的資料做為 計分模型 模組的輸入。

  • 若要對加上標籤的資料集執行交叉驗證,請將資料和未定型的模型連接至 交叉驗證模型

範例

如需如何使用這個學習演算法的範例,請參閱 Azure AI 資源庫

技術說明

本節包含實作詳細資料、提示和常見問題集的解答。

使用提示

羅吉斯回歸需要數值變數。 因此,當您使用類別資料行做為變數時,機器學習會在內部將值轉換成指標陣列。

若為日期和時間,則會使用數值標記法。 (如需日期時間值的詳細資訊,請參閱DateTime 結構 (.NET Framework) -備註。 ) 如果您想要以不同的方式處理日期和時間,建議您建立衍生的資料行。

實作詳細資料

羅吉斯回歸會假設資料的 羅吉斯分佈 ,其中範例屬於類別1的機率是公式:

p(x;β0,…, βD-1)

其中:

  • x 這是包含實例所有功能值的 D 維向量。

  • p 是羅吉斯分佈函數。

  • β{0},..., β {D-1} 是羅吉斯分佈的未知參數。

演算法會藉由將指定輸入的參數最大記錄機率,以嘗試尋找的最佳值 β{0},..., β {D-1} 。 Maximization 是使用常用的參數估計方法來執行,稱為 有限的記憶體 BFGS

參考

For more information on the implementation of this algorithm, see Scalable Training of L-1 Regularized Log-Linear Models, by Andrew and Gao.

模組參數

名稱 範圍 類型 預設 描述
最佳化允差 >=double.Epsilon Float 0.0000001 指定 L-BFGS 最佳化工具的允差值
L1 正則化權數 >= 0。0 Float 1.0 指定 L1 正則化權數。
L2 正規化權數 >= 0。0 Float 1.0 指定 L2 正規化權數
L-BFGS 的記憶體大小 >=1 整數 20 指定要用於 L-BFGS 最佳化工具的記憶體數量 (以 MB 為單位)。
亂數散播 任意 整數 輸入一個值做為模型使用的亂數產生器的種子。 保留空白代表預設值。
允許不明類別層級 任意 布林值 True 指出是否應該為每個類別資料行建立額外層級。 測試資料集內若有任何層級是定型資料集內所有沒有的,則會對應到此額外層級。

輸出

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

另請參閱

分類

多元羅吉斯迴歸

A-Z 模組清單