簡體   English   中英

sklearn Logistic回歸中的混亂

[英]Confusion in sklearn Logistic Regression

我在閱讀Logistic回歸的文檔時感到困惑。 特別是,我對fit_interceptintercept_scaling的用法感到困惑

fit_intercept :bool,默認值:True

指定是否將常量(aka偏置或截距)添加到決策函數。

intercept_scaling :浮點數,默認為1。

僅在使用解算器liblinear並將self.fit_intercept設置為True時有用。 在這種情況下, x變為[x, self.intercept_scaling]常量值等於intercept_scaling的“合成”特征附加到實例矢量。 截距將變為intercept_scaling * synthetic_feature_weight

注意! 與所有其他特征一樣,合成特征權重也要經過l1 / l2正則化。 為了減輕正則化對合成特征權重(以及因此對截距)的影響,必須增加intercept_scaling

據我了解,攔截是數據集的虛擬特征,因為每次進行預測時都會將其添加到輸出中。

intercept_scaling下的段落中,提到了-

等於矢量的常量的“合成”特征將被附加到實例向量

但是這兩個不是一回事嗎? 這是我的主要問題和困惑。

最后,文檔提到僅當我使用liblinear作為求解器時,此功能才有用。 如果這兩個確實相同並且我將fit_intercept保留為True ,那會發生什么?

fit_intercept只是一個指令,用於告訴sklearn將截距添加到決策函數。 但是,由於必須學習截距,所以synthetic_feature_weight開始起作用,基本上就是截距。 intercept_scaling進場正規化,因為攔截也將被處罰,所以你偏移通過增加更多考慮到截距項的處罰intercept_scaling

我沒有發現任何理由來更改intercept_scaling參數,因為畢竟,攔截器將由算法學習,因此,即使您甚至不知道攔截器是什么,為什么還要擴展其效果呢?

暫無
暫無

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

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