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的變化,其中 HIDDEN_NODE_RATIO 參數設定為 0。 此設定會建立不包含隱藏層的類神經網路模型,因此相當於羅吉斯回歸。
Microsoft羅吉斯回歸演算法的實作
假設可預測數據行只包含兩種狀態,但您仍想要執行回歸分析,將輸入數據行與可預測數據行將包含特定狀態的機率產生關聯。 下圖說明如果您將 1 和 0 指派給可預測資料行的狀態、計算數據行將包含特定狀態的機率,以及針對輸入變數執行線性回歸,您將取得的結果。
X 軸包含輸入數據行的值。 Y 軸包含可預測數據行將是一種狀態或其他狀態的機率。 問題在於,線性回歸不會限制數據行介於 0 到 1 之間,即使這些是數據行的最大值和最小值也一樣。 解決此問題的一種方法是執行羅吉斯回歸。 羅吉斯回歸分析會建立包含最大和最小條件約束的 「S」 形狀曲線,而不是建立直線。 例如,下圖說明如果您針對上一個範例所使用的相同數據執行羅吉斯回歸,將會達到的結果。
請注意曲線永遠不會超過 1 或低於 0。 您可以使用羅吉斯回歸來描述哪些輸入數據行對於判斷可預測數據行的狀態很重要。
特徵選取
所有 Analysis Services 數據採礦演算法都會自動使用特徵選取,以改善分析和減少處理負載。 用於羅吉斯回歸模型中特徵選取的方法取決於屬性的數據類型。 由於羅吉斯回歸是以類神經網路演算法Microsoft為基礎,所以它會使用套用至神經網路的特徵選取方法子集。 如需詳細資訊,請參閱 特徵選取(資料採礦)。
評分輸入
神經網路模型或羅吉斯回歸模型內容中的評分 表示將數據中存在的值轉換成一組使用相同小數位數的值,因此可以彼此比較的程式。 例如,假設 Income 的輸入範圍從 0 到 100,000,而 [Children 數目] 的輸入範圍從 0 到 5。 此轉換程式可讓您比較每個輸入的重要性,而不論值的差異為何。
針對出現在定型集中的每個狀態,模型會產生輸入。 如果是離散或離散化輸入,則會建立額外的輸入來代表遺漏狀態,如果遺漏狀態至少出現在定型集中一次。 針對連續輸入,最多會建立兩個輸入節點:一個用於遺漏值,如果存在於定型數據中,以及所有現有或非 Null 值的一個輸入。 每個輸入都會使用 z 分數正規化方法來調整為數值格式,(x - μ)\StdDev
。
在 z 分數正規化期間,平均數 (μ) 和標準偏差會透過完整的定型集取得。
連續值
值存在:(X - μ)/σ
(X 是正在編碼的實際值)
值不存在:- μ/σ
(負畝除以西格瑪)
離散值
μ = p
(狀態的先前機率)
StdDev = sqrt(p\(1-p))
值存在:\(1 - μ)/σ
(除以西格瑪的減畝)
值不存在:(- μ)/σ
(負畝除以西格瑪)
瞭解羅吉斯回歸係數
統計文獻中有各種方法來執行羅吉斯回歸,但所有方法的一個重要部分是評估模型的合適性。 提出了各種適合的善後統計數據,其中包括賠率和共變數模式。 如何測量模型大小的討論超出本主題的範圍;不過,您可以擷取模型中係數的值,並使用它們來設計適合的量值。
注意
在羅吉斯回歸模型中建立的係數並不代表奇數比率,因此不應解譯為 。
模型圖形中每個節點的係數代表該節點輸入的加權總和。 在羅吉斯回歸模型中,隱藏層是空的;因此,只有一組係數會儲存在輸出節點中。 您可以使用下列查詢來擷取係數的值:
SELECT FLATTENED [NODE_UNIQUE NAME],
(SELECT ATTRIBUTE_NAME< ATTRIBUTE_VALUE
FROM NODE_DISTRIBUTION) AS t
FROM <model name>.CONTENT
WHERE NODE_TYPE = 23
針對每個輸出值,此查詢會傳回係數和指向相關輸入節點的標識碼。 它也會傳回包含輸出值和攔截的數據列。 每個輸入 X 都有自己的係數 (Ci),但巢狀數據表也包含根據下列公式計算的「自由」係數(Co):
F(X) = X1*C1 + X2*C2 + ... +Xn*Cn + X0
啟用:exp(F(X)) / (1 + exp(F(X)) )
如需詳細資訊,請參閱 羅吉斯回歸模型查詢範例。
自定義羅吉斯回歸演算法
Microsoft羅吉斯回歸演算法支援數個會影響結果採礦模型行為、效能和精確度的參數。 您也可以在做為輸入的數據行上設定模型旗標,以修改模型的行為。
設定演算法參數
下表描述可與 Microsoft 羅吉斯回歸演算法搭配使用的參數。
HOLDOUT_PERCENTAGE
指定定型數據中用來計算保留錯誤的案例百分比。 在定型採礦模型時,HOLDOUT_PERCENTAGE會當做停止準則的一部分使用。
預設值為 30。
HOLDOUT_SEED
指定在隨機判斷鑒效組數據時,用來植入虛擬隨機產生器的數位。 如果HOLDOUT_SEED設為 0,演算法會根據採礦模型的名稱產生種子,以確保在重新處理期間模型內容保持不變。
預設值為 0。
MAXIMUM_INPUT_ATTRIBUTES
定義演算法在叫用特徵選取之前可以處理的輸入屬性數目。 將此值設定為 0 以關閉特徵選取。
預設值為 255。
MAXIMUM_OUTPUT_ATTRIBUTES
定義演算法在叫用特徵選取之前可以處理的輸出屬性數目。 將此值設定為 0 以關閉特徵選取。
預設值為 255。
MAXIMUM_STATES
指定演算法所支援的屬性狀態數目上限。 如果屬性的狀態數目大於狀態數目上限,則演算法會使用屬性最受歡迎的狀態,並忽略其餘狀態。
預設值為 100。
SAMPLE_SIZE
指定要用來定型模型的案例數目。 演算法提供者會使用這個數位或未包含在HOLDOUT_PERCENTAGE參數所指定之鑒效組百分比中之案例總數的百分比,以較小的值為準。
換句話說,如果HOLDOUT_PERCENTAGE設定為 30,則演算法會使用此參數的值,或等於案例總數的 70% 的值,無論哪一個較小。
預設值為 10000。
模型旗標
支援下列模型旗標搭配 Microsoft羅吉斯回歸演算法使用。
NOT NULL
表示數據行不能包含 Null。 如果 Analysis Services 在模型定型期間遇到 Null,將會產生錯誤。
適用於採礦結構數據行。
MODEL_EXISTENCE_ONLY
表示資料列將被視為有兩種可能的狀態:遺漏 和 現有。 Null 是遺漏值。
適用於採礦模型數據行。
要求
羅吉斯回歸模型必須包含索引鍵數據行、輸入數據行,以及至少一個可預測的數據行。
輸入和可預測數據行
Microsoft羅吉斯回歸演算法支援下表所列的特定輸入數據行內容類型、可預測的數據行內容類型和模型旗標。 如需在採礦模型中使用內容類型的意義詳細資訊,請參閱 內容類型(資料採礦)。
列 | 內容類型 |
---|---|
輸入屬性 | 連續、離散、離散化、索引鍵、數據表 |
可預測屬性 | 連續、離散、離散化 |
另請參閱
Microsoft 羅吉斯回歸演算法
線性回歸模型查詢範例
羅吉斯回歸模型 (Analysis Services - 數據採礦) 的採礦模型內容
Microsoft 類神經網路演算法