[英]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
特征並輸出0
或1
。 假設訓練后,這些特征的系數分別為:
[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.