scikit-learn 默认使用正则化吗?

数据挖掘 逻辑回归 scikit-学习
2021-09-14 02:26:10

我刚刚为一些假数据拟合了一条逻辑曲线。我使数据本质上是一个阶跃函数。

data = -------------++++++++++++++

但是当我查看拟合曲线时,斜率非常小。假设交叉熵,最能最小化成本函数的函数是阶跃函数。为什么它看起来不像阶跃函数?默认情况下是否有一些正则化,L1 或 L2?

使用 scikit-learn 的逻辑回归

2个回答

请查看文档第一行显示默认参数,包括penalty='l2'C=1.0

你实际上不能完全禁用正则化,你只能减少正则化......C=1e10例如尝试设置。

是的,默认情况下有正则化。它似乎是常数为 1 的 L2 正则化。

我玩弄了这个,发现常数为 1 的 L2 正则化给了我一个拟合,看起来就像 sci-kit learn 在没有指定正则化的情况下给我的一样。

from sklearn.linear_model import LogisticRegression    
model = LogisticRegression()
model.fit(X, y)

是相同的

model = LogisticRegression(penalty="l2", C=1)
model.fit(X, y)

当我选择 时C=10000,我得到的东西看起来更像阶跃函数。