在Logistic回归中:
假设函数,
h(x) = ( 1 + exp{-wx} )^-1
其中,w - 适合或优化的权重/参数
成本函数(-ve log似然函数)如下:
对于单一训练,例如..(x,y):
l(w) = y * log ( h(x) ) + (1 - y) * log ( 1 - h(x) )
目标是在所有训练样本上最大化l(w),从而估计w。
问题:
考虑这样的情况,即训练样本比负面(y = 0)训练样例多得多(y = 1)。
为简单起见:
如果我们只考虑正(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 ||。
答案 0 :(得分:0)
如果只有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),但是第二个词可以非常快地减少(因为{{1}当log(x)
接近0时,非常快地趋向于无穷大。如果您无限制地增加x
,则w
将变为负无穷大。因此,存在最大化可能性的有限l(w)
。
但是有一个重要的例外。当某些超平面完全分离时,它会发生这种情况(与类大小很少)。在这种情况下,第一个和第二个词都倾向于w
,而0
倾向于无穷大。
但如果这些类完全分开,你可能根本不需要逻辑回归!它的功效在概率预测中,但在完全分离的情况下,预测可能是确定性的!因此,您可以将SVM应用于您的数据。
或者您可以解决正则化问题,最大化||w||
。例如,在scikit-learn逻辑回归does exactly this中。在这种情况下,如果l(w)-lambda*||w||
足够接近0,l(w)
将占主导地位,目标函数最终会在||w||
中减少。
因此,目标函数中的一个小惩罚解决了你担心。这是一个广泛应用的解决方案,不仅在逻辑回归中,而且在线性模型(Lasso,Ridge等)和神经网络中。