「線性迴歸」元件

本文描述 Azure Machine Learning 設計工具的元件。

您可以使用此元件來建立線性迴歸模型,以便在管線中使用。 線性迴歸會嘗試建立一或多個獨立變數與數值結果,或相依變數之間的線性關聯。

您可以使用此元件來定義線性迴歸方法,然後使用加上標籤的資料集來定型模型。 然後,定型的模型就可用來進行預測。

關於線性迴歸

線性迴歸是一種常見的統計方法,機器學習已採用此方法,並增強許多調整線性和測量誤差的新方法。 簡而言之,迴歸是指數值目標的預測。 當您想要一個簡單的模型來進行基本的預測工作時,線性迴歸仍是一個不錯的選擇。 線性迴歸通常也可在高維度、缺乏複雜性的疏鬆資料集上順利運作。

除了線性迴歸之外,Azure Machine Learning 還支援各種不同的迴歸模型。 不過,「迴歸」一詞可以廣義解讀,而且不支援其他工具中提供的某些迴歸類型。

  • 傳統迴歸問題涉及單一的獨立變數和相依變數。 這稱為簡單的迴歸。 此元件支援簡單的迴歸。

  • 多重線性迴歸涉及兩個以上的獨立變數,這些變數構成單一相依變數。 使用多個輸入來預測單一數值結果的問題也稱為多變量線性迴歸

    線性迴歸元件可解決這些問題,就像大部分其他迴歸元件一樣。

  • 多標籤迴歸是在單一模型中預測多個相依變數的工作。 例如,在多標籤羅吉斯迴歸,一個範例可以指派給多個不同的標籤。 (這與單一類別變數中預測多重層級的工作不同。)

    Azure Machine Learning 不支援此類型的迴歸。 若要預測多個變數,請針對您想要預測的每個輸出建立個別的學習模組。

多年來,統計學家也不斷開發越來越進階的迴歸方法。 即使是線性迴歸也是如此。 此元件支援兩種方法來測量錯誤並調整迴歸線:普通最小平方方法和梯度下降。

  • 梯度下降法會在模型定型程序的每個步驟中最小化誤差數量。 梯度下降有許多種變異形式,且其各種學習問題已經過廣泛的研究,而最佳化。 如果您針對解決方案方法選擇此選項,您可以設定各種不同的參數,來控制階梯大小、學習速率等等。 此選項也支援使用整合式參數掃掠。

  • 普通最小平方是線性迴歸中最常用的技術之一。 例如,最小平方是 Microsoft Excel 的 [分析工具箱] 中使用的方法。

    普通最小平方會使用損失函數,計算實際值與預測線之差距的平方和以求出誤差,並藉由將平方誤差最小化來配適模型。 此方法假設輸入與相依變數之間有很強的線性關聯。

設定線性迴歸

此元件支援使用不同選項來調整回歸模型的兩種方法:

使用普通最小平方來建立回歸模型

  1. 在設計工具中,將線性迴歸模型元件新增至您的管線。

    您可以在 Machine Learning 類別中找到此元件。 展開 [初始化模型],展開 [迴歸],然後將線性迴歸模型元件拖曳到您的管線。

  2. 在 [屬性] 窗格中,在 [解決方案方法] 下拉式清單中,選取 [普通最小平方]。 此選項會指定用於尋找迴歸線的計算方法。

  3. 在 [L2 正規化權重] 中,輸入要用來做為 L2 正規化權重的值。 建議您使用非零值,以避免過度學習。

    若要深入了解正規化如何影響模型調整,請參閱文章:適用於 Machine Learning 的 L1 和 L2 正規化

  4. 如果您想要檢視攔截的字詞,請選取 [包含攔截字詞] 選項。

    如果您不需要檢閱迴歸公式,請取消選取此選項。

  5. 對於亂數種子,您可以選擇性地輸入值來植入模型所使用的亂數產生器。

    如果您想要讓相同管線在每次執行時都保有相同結果,則適合使用種子值。 否則,預設值會使用系統時鐘的值。

  6. 將 [定型模型] 元件新增至您的管線,並連接已加上標籤的資料集。

  7. 提交管線。

普通最小平方模型的結果

定型完成後:

  • 若要進行預測,請將定型的模型連接到 [計分模型] 元件,以及新值的資料集。

使用線上梯度下降來建立迴歸模型

  1. 在設計工具中,將線性迴歸模型元件新增至您的管線。

    您可以在 Machine Learning 類別中找到此元件。 展開 [初始化模型],展開 [迴歸],然後將線性迴歸模型元件拖曳到您的管線

  2. 在 [屬性] 窗格中,在 [解決方案方法] 下拉式清單中,選擇 [線上梯度下降] 做為用來尋找迴歸線的計算方法。

  3. 對於 [建立定型模型],指出您是否要使用預先定義的一組參數來定型模型,或是否要使用參數掃掠來最佳化模型。

    • 單一參數:如果您知道要如何設定線性迴歸網路,您可以提供一組特定值做為引數。

    • 參數範圍:如果您不確定最佳參數,且想要執行參數掃掠,請選取此選項。 選取要反覆運算的值範圍,而微調模型超參數會反覆運算您提供的所有可能設定組合,以判斷可產生最佳結果的超參數。

  4. 對於學習速率,請指定隨機梯度下降最佳化工具的初始學習速率。

  5. 對於定型 Epoch 數目,請輸入指出演算法應該逐一查看範例的次數值。 對於只有少數範例的資料集,這個數字應該要大到能夠達到收斂為止。

  6. 正規化功能:如果您已正規化用於定型模型的數值資料,則可以取消選取此選項。 依預設,此元件會將所有數值輸入正規化為介於 0 和 1 之間的範圍。

    注意

    請記得將相同的正規化方法套用至用於評分的新資料。

  7. 在 [L2 正規化權重] 中,輸入要用來做為 L2 正規化權重的值。 建議您使用非零值,以避免過度學習。

    若要深入了解正規化如何影響模型調整,請參閱文章:適用於 Machine Learning 的 L1 和 L2 正規化

  8. 如果您想要將學習速率減少為反覆運算進度,請選取 [減少學習速率] 選項。

  9. 對於亂數種子,您可以選擇性地輸入值來植入模型所使用的亂數產生器。 如果您想要讓相同管線在每次執行時都保有相同結果,則適合使用種子值。

  10. 定型模型:

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

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

    注意

    如果您將參數範圍傳遞給定型模型,則系統只會使用單一參數清單中的預設值。

    如果您將單一組參數值傳遞至調整模型超參數元件,當其預期每個參數有一組設定時,則會忽略這些值,並對學習模組使用預設值。

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

  11. 提交管線。

線上梯度下降的結果

定型完成後:

  • 若要進行預測,請將定型的模型連接到計分模型元件,以及新的輸入資料。

後續步驟

請參閱 Azure Machine Learning 可用的元件集