如何在sklearn逻辑回归中选择初始偏差值?

在训练逻辑回归时,它经历一个迭代过程,在每个过程中它计算 x 变量的权重和偏差值以最小化损失函数。

来自官方 sklearn 代码类 LogisticRegression | scikit-learn 中的线性模型,逻辑回归类的拟合方法如下

def fit(self, X, y, sample_weight=None):
    """
    Fit the model according to the given training data.
    Parameters
    ----------
    X : {array-like, sparse matrix} of shape (n_samples, n_features)
        Training vector, where n_samples is the number of samples and
        n_features is the number of features.
    y : array-like of shape (n_samples,)
        Target vector relative to X.
    sample_weight : array-like of shape (n_samples,) default=None
        Array of weights that are assigned to individual samples.
        If not provided, then each sample is given unit weight.
        .. versionadded:: 0.17
           *sample_weight* support to LogisticRegression.

我猜sample_weight = weightx 变量如果没有给出就设置为 1,偏差值也是 1 吗?

回答

您听起来有些困惑,也许在这里寻找与神经网络的权重和偏差的类比。但这种情况并非如此; sample_weight这里与神经网络的权重无关,即使作为一个概念。

sample_weight是不是这样,如果(业务)问题需要,我们可以给一些样本比其他样本更多的权重(即更重要),而这种重要性直接影响损失。它有时用于数据不平衡的情况;引用文档的实际使用部分的提示(它是关于决策树的,但基本原理是相同的):

类平衡可以通过从每个类中采样相同数量的样本来完成,或者最好通过将每个类的样本权重 ( sample_weight)的总和归一化为相同的值来完成。

并来自Cross Validated的相关线程:

样本权重用于增加单个数据点的重要性(假设您的某些数据更值得信赖,然后它们会获得更高的权重)。所以:样本权重的存在是为了改变数据点的重要性

您可以在 SO 线程中看到更改某些样本的权重如何改变最终模型的实际演示。(同样,它是关于决策树的,但基本原理是相同的)。

澄清了这一点之后,现在应该很明显,这里没有任何类型的“偏差”参数的空间。事实上,在你的问题的入门款是错误的:回归并没有计算这样的重量和偏见; 它返回系数截距项(有时本身称为偏差),而这些系数和截距与 无关sample_weight


以上是如何在sklearn逻辑回归中选择初始偏差值?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>