我对我得到的结果有些失望。我使用and ' or创建了两个模型 ( sklearn.linear_models.LogisticRegression
) ,然后使用and测试它们。对我来说,应该导致几乎没有正则化,并且 AUC 应该是相同的。相反,带有惩罚的模型给出了更差的 AUC,并且多次运行给了我相同的结果。这是怎么发生的?C=1e80
penalty = 'l1
'l2'
sklearn.cross_validation.cross_val_score
cv=3
scoring='roc_auc'
C=1e80
'l2'
问问题
715 次
1 回答
0
只是为了让它更清楚一点。大多数损失函数的一般形式是
C SUM_i=1^N loss(h(x_i), y_i|theta) + regularizer(theta)
因此,整个问题C
是在训练样本的损失总和和正则化值之间找到平衡。
现在,如果损失是有界的(就像在逻辑回归的情况下),那么如果没有适当的归一化,L2 正则化器 (||theta||^2) 可能会增长到无穷大,因此您将需要非常高的 C 才能使其无关紧要并因此相等在 L1 (max_j |theta_j|) 的解中。同样,如果您的损失增长非常快,例如 p>=2 的 Lp 损失,那么正则化器可能非常小,因此您需要非常小C
才能让它做任何事情。
于 2016-02-08T22:20:15.150 回答