Microsoft 線性迴歸演算法技術參考

適用于:SQL Server 2019 和更早版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

資料採礦自 SQL Server 2017 Analysis Services 起退場,現在的 SQL Server 2022 Analysis Services 已不再繼續提供。 已退場和不再繼續提供之功能的文件不予更新。 若要深入了解,請參閱 Analysis Services 回溯相容性

Microsoft 線性回歸演算法是 Microsoft 決策樹演算法的特殊版本,已針對連續屬性的模型配對進行優化。 本主題說明演算法的實作、描述如何自訂演算法的行為,以及提供查詢模型其他資訊的連結。

線性迴歸演算法的實作

Microsoft 決策樹演算法可用於多種工作:線性迴歸、分類或關聯分析。 若要針對線性迴歸的用途實作這個演算法,演算法的參數會受到控制,以限制樹狀結構的成長並將模型中的所有資料保存在單一節點中。 換句話說,雖然線性迴歸是以決策樹為基礎,但是此樹狀結構僅包含一個單一節點,而且沒有任何分支:所有資料都在根節點中。

若要完成此動作,演算法的 MINIMUM_LEAF_CASES 參數會設定為大於或等於演算法用於定型採礦模型之案例的總數。 以此方式設定參數時,演算法絕不會建立分岔,因此會執行線性迴歸。

代表迴歸線的方程式採用一般形式 y = ax + b,即所謂的迴歸方程式。 變數 Y 代表輸出變數,X 代表輸入變數,而 a 和 b 為可調整係數。 您可以藉由查詢已完成的採礦模型,擷取有關迴歸公式的係數、截距,以及其他資訊。 如需詳細資訊,請參閱 線性迴歸模型查詢範例

計分方法與特徵選取

所有SQL Server Analysis Services資料採礦演算法都會自動使用特徵選取來改善分析和減少處理負載。 在線性迴歸中,用於特徵選取的方法為有趣性分數,因為模型支援僅支援連續資料行。 下表顯示線性迴歸演算法與決策樹演算法的特徵選取差異,供參考之用。

演算法 分析的方法 註解
線性迴歸 有趣性分數 預設值。

可用於決策樹演算法的其他特徵選取方法僅適用於離散變數,因此不適用於線性迴歸模型。
決策樹 有趣性分數

Shannon 熵

使用 K2 優先的貝氏

使用優先統一狄氏分配的貝氏 (預設值)
如果任何資料行包含非二進位連續數值,則所有資料行都會使用有趣性分數以確保一致性。 否則,會使用預設值或指定的方法。

針對決策樹模型控制特徵選取的演算法參數為 MAXIMUM_INPUT_ATTRIBUTES 和 MAXIMUM_OUTPUT。

自訂線性迴歸演算法

Microsoft 線性回歸演算法支援影響所產生採礦模型行為、效能和精確度的參數。 您也可以設定採礦模型資料行或採礦結構資料行上的模型旗標來控制處理資料的方式。

設定演算法參數

下表列出 Microsoft 線性回歸演算法所提供的參數。

參數 Description
MAXIMUM_INPUT_ATTRIBUTES 定義演算法在叫用特徵選取之前,可以處理的輸入屬性數目。 將此值設定為 0 可關閉特徵選取。

預設值為 255。
MAXIMUM_OUTPUT_ATTRIBUTES 定義演算法在叫用特徵選取之前,可以處理的輸出屬性數目。 將此值設定為 0 可關閉特徵選取。

預設值為 255。
FORCE_REGRESSOR 強制演算法使用指定的資料行作為迴歸輸入變數,不考慮演算法計算出來之資料行的重要性。

模型旗標

Microsoft 線性回歸演算法支援下列模型旗標。 當您建立採礦結構或採礦模型時,您會定義模型旗標來指定分析期間要如何處理每個資料行中的值。 如需詳細資訊,請參閱 模型旗標 (資料採礦)

模型旗標 Description
NOT NULL 表示資料行不能包含 Null 值。 如果 Analysis Services 在模型定型期間遇到 Null 值,將會產生錯誤。

適用於採礦結構資料行。
REGRESSOR 表示資料行包含分析時應視為潛在獨立變數的連續數值。 適用於採礦模型資料行。

注意:為資料行加上旗標做為迴歸輸入變數無法確保將該資料行當做最終模型中的迴歸輸入變數使用。

線性迴歸模型中的迴歸輸入變數

線性回歸模型是以 Microsoft 決策樹演算法為基礎。 不過,即使您未使用 Microsoft 線性回歸演算法,任何決策樹模型都可以包含代表連續屬性上回歸的樹狀結構或節點。

您不需要指定連續的資料行代表迴歸輸入變數。 Microsoft 決策樹演算法會將資料集分割成具有有意義模式的區域,即使您未在資料行上設定 REGRESSOR 旗標也一樣。 其差別是當您設定模型旗標時,演算法會嘗試尋找 a*C1 + b*C2 + ... 形式的迴歸方程式,以在樹狀結構的節點中比對模式。 之後會計算剩餘數的總和,如果差異過大,就會在樹狀結構中強制進行分割。

例如,如果您使用 Income 作為屬性來預測客戶購買行為,且在 [Income] 資料行上設定 REGRESSOR 模型旗標,則演算法首先會使用標準迴歸公式來比對值。 如果差異過大,就會放棄迴歸公式,且根據其他的屬性分割樹狀結構。 在分割之後,決策樹演算法就會接著嘗試在每個分支中比對收入的迴歸輸入變數。

您可以使用 FORCED_REGRESSOR 參數來確保演算法會使用特定的迴歸輸入變數。 這個參數可以搭配 Microsoft 決策樹演算法及 Microsoft 線性迴歸演算法使用。

規格需求

線性迴歸模型必須包含索引鍵資料行、輸入資料行和至少一個可預測資料行。

輸入和可預測資料行

Microsoft 線性回歸演算法支援下表所列的特定輸入資料行和可預測資料行。 如需在採礦模型中使用內容類型的意義詳細資訊,請參閱 內容類型 (資料採礦)

資料行 內容類型
輸入屬性 Continuous、Cyclical、Key、Table 和 Ordered
可預測屬性 Continuous、Cyclical 和 Ordered

注意

支援迴圈已排序內容類型,但演算法會將它們視為離散值,而且不會執行特殊處理。

另請參閱

Microsoft 線性迴歸演算法
線性迴歸模型查詢範例
線性迴歸模型的採礦模型內容 (Analysis Services - 資料採礦)