[英]Confusion in sklearn Logistic Regression
我在閱讀Logistic回歸的文檔時感到困惑。 特別是,我對fit_intercept
和intercept_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.