線性迴歸

建立線性迴歸模型

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

注意

適用于 : Machine Learning Studio (傳統)

此內容僅適用于 Studio (傳統) 。 Azure Machine Learning 設計工具中已新增類似的拖放模組。 若要深入瞭解 這兩個版本,請參閱這篇文章

模組概觀

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

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

深入瞭解線性回歸

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

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

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

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

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

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

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

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

  • 梯度下降 是一種方法,可將模型定型程式之每個步驟的錯誤數量降至最低。 梯度下降有許多種變異形式,且其各種學習問題已經過廣泛的研究,而最佳化。 如果您為 [ 方案方法] 選擇這個選項,您可以設定各種不同的參數來控制步驟大小、學習率等等。 此選項也支援使用整合式參數掃描。

  • 一般最小平方 是線性回歸中最常使用的其中一種技術。 例如,最小平方是適用于 Microsoft Excel 的分析工具庫中所使用的方法。

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

如何設定線性回歸

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

使用一般最小平方來建立回歸模型

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

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

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

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

    若要深入瞭解正規化如何影響模型的調整,請參閱這篇文章: 適用于機器學習服務的 L1 和 L2 正規化

  4. 如果您想要查看攔截的詞彙,請選取 [ 包含攔截詞彙] 選項。

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

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

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

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

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

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

  8. 執行實驗。

一般最小平方模型的結果

定型完成後:

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

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

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

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

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

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

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

  3. 針對 [ 建立定型模式],指出您是否要使用一組預先定義的參數來定型模型,或是否要使用參數清除來優化模型。

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

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

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

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

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

    注意

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

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

    若要深入瞭解正規化如何影響模型的調整,請參閱這篇文章: 適用于機器學習服務的 L1 和 L2 正規化

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

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

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

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

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

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

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

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

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

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

    注意

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

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

  13. 執行實驗。

線上梯度下降的結果

定型完成後:

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

範例

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

技術說明

本節包含對常見問題的執行詳細資料、秘訣和解答。

使用提示

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

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

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

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

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

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

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

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

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

模組參數

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

輸出

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

另請參閱

迴歸