簡體   English   中英

邏輯回歸 - 計算每個屬性對最終概率的貢獻

[英]Logistic Regression - Calculate how much each attribute contributed to final probability

我試圖計算觀察的每個屬性對邏輯回歸給出的最終概率的貢獻。 我已經在我的數據集上訓練了 pythons sklearn 邏輯回歸。 現在我用它來對實時數據集進行預測。 我想知道每個屬性 (X) 對 sklearns predict_proba 方法給出的最終預測的貢獻有多大。

這是通過 logreg 計算概率的公式。

ln p/(1-p)=α+β^TX

p; 為 1 α 的概率; 偏差β^T; 系數轉置 X; 屬性值

二元邏輯回歸

假設二元邏輯回歸很容易; 您對輸入的每個特征都有權重,這些權重在訓練后會增加或減少概率。

假設您有4特征並輸出01 假設訓練后,這些特征的系數分別為:

[0.0, -2.2, 1.3, -0.45]

在這里,您可以很容易地看到,如果特定示例的此輸入特征大於零(或者,換句話說,特征2與概率正相關),則權重為1.3第二個(從0編號)特征有助於提高概率。

另一方面,第一個特征( -2.2 )與概率負相關,而第零個特征無論其值如何對概率結果都沒有影響。

您可以通過發出這些系數/權重

clf.coeffs_

前提是您的LogisticRegression名為clf

多項邏輯回歸

一般來說,多項邏輯回歸會有一個特征矩陣,每一行代表一個標簽的概率。

再一次,假設您要將輸入分類為5類別和34輸入特征之一,並假設學習的權重矩陣如下所示:

[
    [0.1, 2.2, -0.1, 0.133], # Features of class 0
    [-2, -1.1, 0, 4.56],
    [-0.1, 0, 0.3, 0.4],
    [3.3, -2, 15, -9.4],
    [0.45, 0.5, 0.66, 5.5],
]

現在您可以應用與上述相同的想法; 讓我們看看這4特征中的每一個如何影響輸出標簽3概率,所以我們取這一行:

[3.3, -2, 15, -9.4]

並且可以看到特征0和特征2與輸出標簽3概率呈正相關,而特征1和特征3呈負相關。

偏見

偏見有助於先驗知識。 假設所有權重為零。 在二進制情況下,只有一個偏差,所以它要么輸出小(負偏差)概率,要么輸出大(正偏差)。

在多項式情況下,每個類都有一個偏差,但它的工作原理類似。

系數的貢獻

您可以將權重歸一化到[-1, 1]范圍內,最大的負權重對輸出零概率的影響最大,最高的正權重對輸出概率為 1 的影響最大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM