線性迴歸

重要

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

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

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

建立線性迴歸模型

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

注意

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

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

模組概觀

本文描述如何在機器學習 Studio (傳統) 中使用線性回歸模組,以建立用於實驗的線性回歸模型。 線性迴歸會嘗試建立一或多個獨立變數與數值結果,或相依變數之間的線性關聯。

您可以使用此模組來定義線性回歸方法,然後使用已加上標籤的資料集來定型模型。 然後,定型的模型就可用來進行預測。 或者,未定型的模型可以傳遞至 交叉驗證模型 ,以根據加上標籤的資料集進行交叉驗證。

深入瞭解線性回歸

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

機器學習 Studio (傳統) 除了線性回歸之外,還支援各種不同的回歸模型。 不過,「回歸」一詞可以鬆散地解讀,而在 Studio (傳統) 中,則不支援其他工具中提供的某些類型的回歸。

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

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

    線性回歸模組可以解決這些問題,因為 Studio 中大部分的其他回歸模組都 (傳統) 。

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

    機器學習不支援這種類型的回歸。 若要預測多個變數,請針對您想要預測的每個輸出建立個別的學習模組。

多年來,統計學家也不斷開發越來越進階的迴歸方法。 即使是線性迴歸也是如此。 此模組支援兩種方法來測量錯誤並配合迴歸線:一般最小平方方法和梯度下降。

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

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

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

如何設定線性回歸

此課程模組支援兩種方法來調整回歸模型,並具有非常不同的選項:

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

  1. 線性回歸模型 模組新增至您在 Studio (傳統) 中的實驗。

    您可以在機器學習分類中找到此模組。 展開 [ 初始化模型],展開 [ 回歸],然後將 [ 線性回歸模型 ] 模組拖曳至您的實驗。

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

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

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

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

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

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

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

  6. 如果您想要遺漏值來引發錯誤,請取消選取 [ 允許未知的類別層級] 選項。

    如果選取此選項,則會為每個類別資料行建立額外層級。 測試資料集中不存在於訓練資料集中的任何層級,都會對應到這個額外的層級。

  7. 將「 定型模型 」模組新增至您的實驗,並連接已加上標籤的資料集。

  8. 執行實驗。

普通最小平方模型的結果

定型完成後:

  • 若要查看模型的參數,請以滑鼠右鍵按一下訓練人員輸出,然後選取 [ 視覺化]。

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

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

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

  1. 線性回歸模型 模組新增至您在 Studio (傳統) 中的實驗。

    您可以在機器學習分類中找到此模組。 展開 [ 初始化模型],展開 [ 回歸],然後將 線性回歸模型 模組拖曳至您的實驗

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

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

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

    • 參數範圍:如果您希望演算法為您尋找最佳參數,請將 [ 建立定型模式] 選項設定為 [ 參數範圍]。 然後,您可以為演算法指定多個值來嘗試。

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

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

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

    注意

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

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

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

  8. 選取 [ 平均最終假設] 選項,以平均最終假設。

    在回歸模型中,假設測試表示使用某些統計資料來評估 null 假設的機率,這表示相依與獨立變數之間沒有線性關聯。 在許多回歸問題中,您必須測試牽涉到一個以上變數的假設。

    預設會啟用此選項,這表示演算法會測試牽涉到兩個或多個參數的參數組合。

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

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

  11. 如果您想要遺漏值來引發錯誤,請取消選取 [ 允許未知的類別層級] 選項。

    選取此選項時,會為每個類別資料行建立額外層級。 測試資料集內不存在於訓練資料集中的任何層級都會對應到此額外層級。

  12. 新增加上標籤的資料集和其中一個 定型模組

    如果您不是使用參數清除,請使用「 定型模型 」模組。

    若要讓演算法為您尋找最佳參數,請使用 微調模型超參數來定型模型。

    注意

    如果您使用 [ 單一參數 ] 選項來設定具有特定值的模型,然後切換到 [ 參數範圍 ] 選項,則會使用每個參數範圍內的最小值來定型模型。

    相反地,如果您在建立模型時設定特定的設定,但卻選取 [ 參數範圍 ] 選項,就會使用學習模組的預設值來定型模型,以作為要清除的值範圍。

  13. 執行實驗。

線上梯度下降的結果

定型完成後:

  • 若要進行預測,請將定型的模型與新的輸入資料連線在「 評分模型 」模組中。
  • 若要對加上標籤的資料集執行交叉驗證,請將未定型的模型連接至 交叉驗證模型

範例

如需回歸模型的範例,請參閱 Azure AI 資源庫中的下列範例實驗:

技術說明

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

使用提示

許多工具皆支援建立線性迴歸的作業,無論是簡單還是複雜。 例如,您可以使用「規劃工具」工具庫,輕鬆地在 Excel 中執行線性回歸,也可以使用 R、Python 或 c # 來撰寫自己的回歸演算法的程式碼。

不過,因為線性回歸是一種已妥善建立的技術,由許多不同的工具所支援,所以有許多不同的解讀和執行方式。 並非所有工具都同樣支援所有類型的模型。 還有一些要觀察的命名法差異。

  • 回歸方法通常會依回應變數的數目分類。 例如,多重線性迴歸是指使用多個變數進行預測的模型。

  • 在 Matlab 中,多變量迴歸是指有多個回應變數的模型。

  • 在機器學習中,回歸模型支援單一回應變數。

  • 在 R 語言中,為線性迴歸提供的特徵取決於您要使用的封裝。 例如, glm 封裝可讓您建立具有多個獨立變數的羅吉斯回歸模型。 一般來說,機器學習 Studio (傳統) 提供與 R glm封裝相同的功能。

建議您針對一般回歸問題使用此模組( 線性回歸)。

相反地,如果您使用多個變數來預測類別值,我們建議使用 兩個類別的羅吉斯回歸多元羅吉斯回歸 模組。

如果您想要使用適用于 R 語言的其他線性回歸封裝,建議您使用 [執行 R 腳本] 模組,並呼叫lmglm封裝(包含在機器學習 Studio (傳統) 的執行時間環境中)。

模組參數

名稱 範圍 類型 預設 描述
正規化特徵 任意 Boolean true 指出是否應該正規化執行個體
平均最終假設 任意 Boolean true 指出是否應該平均最終假設
學習率 >=double.Epsilon Float 0.1 指定隨機梯度下降最佳化工具的初始學習率
定型 epoch 的數目 >=0 整數 10 指定此演算法應該反覆運算範例的次數。 對於只有少數範例的資料集,這個數字應該要大到能夠達到收斂為止。
減少學習速率 任意 布林值 true 指出學習速率是否應該隨著反覆運算而降低
L2 正規化權數 >= 0。0 Float 0.001 指定 L2 正則化的權數。 使用非零值以防止過度配適。
亂數散播 任意 整數 指定一個值做為模型使用的亂數產生器的種子。 保留空白表示預設值。
允許不明類別層級 任意 Boolean true 指出是否應該為每個類別資料行建立額外層級。 測試資料集內若有任何層級是定型資料集內所有沒有的,則會對應到此額外層級。
包含截距項 任意 布林值 True 指出是否應該為截距新增另一項

輸出

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

另請參閱

迴歸