0

在逻辑回归中:

假设函数,

                   h(x) = ( 1 + exp{-wx} )^-1

其中,w - 要拟合或优化的权重/参数


成本函数(-ve 对数似然函数)如下:

对于单次培训,例如。(x,y):

         l(w) = y * log ( h(x) ) + (1 - y) * log ( 1 - h(x) )

目标是在所有训练示例上最大化 l(w),从而估计 w。


问题 :

考虑这样一种情况,其中正面 (y=1) 训练示例比负面 (y=0) 训练示例多得多。

为简单起见:

如果我们只考虑正面 (y=1) 示例: 算法运行:

           maximize ( l(w) )

          =>  maximize ( y * log ( h(x) ) )

          =>  maximize ( log( h(x) ) )

          =>  maximize ( h(x) ); since log(z) increases with z

          =>  maximize ( ( 1 + exp{-wx} )^-1 )

          =>  maximize ( wx );   
   since a larger wx will increase h(x) and move it closer to 1

换句话说,优化算法会尝试增加 (wx) 以便更好地拟合数据并增加似然度。


但是,算法似乎有可能以一种意想不到的方式增加(wx)但无论如何都不能改善解决方案(决策边界):

             by scaling w: w' = k*w  ( where k is positive constant )

我们可以在不改变我们的解决方案的情况下增加 (k*wx)。

1) 为什么这不是问题?或者这是一个问题?

2)有人可能会争辩说,在一个正面示例多于负面示例的数据集中,该算法将尝试不断增加||w||。

4

1 回答 1

0
  1. 有时这是一个问题,但通过正则化解决
  2. 仅当类完全分开时

如果只有 y=1,算法确实会尽量wx做大,永远不会收敛。但是如果你只有一个类,你根本不需要逻辑回归。

如果数据集不平衡(y=1 比 y=0 多),一般来说,逻辑回归不会遇到收敛问题

让我们看看为什么。假设你只有 1 个负例x_0,和 N 个相同的正例x_1。然后对数似然看起来像

l(w) = N * log(h(x_1)) + log(1-h(x_0))

h(x)范围在 0 和 1 之间,因此这两个分量都以 0 为界,但从下方不受限制。

现在,如果w足够大并且你不断增加它,第一项将仅略微增加(因为它已经接近 0),但第二项可以非常快地减少(因为当接近 0log(x)时往往会非常快地减去无穷大)。x如果你w无限增加,l(w)就会去负无穷大。因此,存在一个w使似然性最大化的有限项。

但有一个重要的例外。当类被某个超平面完全分开时会发生这种情况(它与类大小无关)。0在这种情况下,第一项和第二项都将趋于||w||无穷大。

但如果类完全分开,你可能根本不需要逻辑回归!它的力量在于概率预测,但在完全分离的情况下,预测可能是确定性的!因此,您可以改为将 SVM 应用于您的数据。

或者你可以解决一个正则化问题,最大化l(w)-lambda*||w||. 例如,在 scikit-learn 中,逻辑回归正是这样做的。在这种情况下,如果l(w)足够接近 0,||w||则将占主导地位,并且目标函数最终会在 中减小w

因此,目标函数中的一个小惩罚解决了您的担忧。这是一个广泛应用的解决方案,不仅在逻辑回归中,而且在线性模型(Lasso、Ridge 等)和神经网络中。

于 2017-11-22T17:02:35.840 回答