逻辑回归的成本函数

Lon*_*guy 21 regression machine-learning data-mining

在最小二乘模型中,成本函数被定义为预测值和实际值之间的差的平方,作为输入的函数.

当我们进行逻辑回归时,我们将成本函数更改为对数函数,而不是将其定义为sigmoid函数(输出值)和实际输出之间差异的平方.

是否可以更改和定义我们自己的成本函数来确定参数?

Fre*_*Foo 28

是的,你可以定义自己的损失函数,但如果你是新手,你可能最好使用文献中的一个.损失函数应满足条件:

  1. 它们应该近似于您试图最小化的实际损失.正如在另一个答案中所说,用于分类的标准损失函数是零一损失(错误分类率),用于训练分类器的标准损失函数是该损失的近似值.

    不使用线性回归的平方误差损失,因为它不能很好地逼近零损失:当您的模型预测某些样本为+50而预期答案为+1(正类)时,预测为决策边界的正确边,所以零丢失为零,但平方误差损失仍然是49²= 2401.一些训练算法将浪费大量时间使预测非常接近{-1,+ 1}而不是专注于正确的标志/类标签.(*)

  2. 损失函数应该与您的预期优化算法一起使用.这就是为什么不能直接使用零损失的原因:它不适用于基于梯度的优化方法,因为它没有明确定义的梯度(甚至是子梯度,如SVM的铰链损耗).

    直接优化零丢失的主要算法是旧的感知器算法.

此外,当您插入自定义损失函数时,您不再构建逻辑回归模型,而是构建其他类型的线性分类器.

(*)的平方误差使用线性判别分析,但是这通常是在靠近形式而不是迭代求解.

  • 关于第 1 点,在逻辑回归中,模型永远无法预测 +50,因为输出是由逻辑函数缩放的,该函数将输入限制为 (0,1)。 (2认同)

use*_*913 10

使用逻辑函数,铰链损失,平滑铰链损耗等,因为它们是零 - 一二进制分类损失的上限.

这些函数通常也会对正确分类但仍在决策边界附近的示例进行处罚,从而创建"边距".

所以,如果你正在进行二元分类,那么你当然应该选择一个标准的损失函数.

如果您正在尝试解决其他问题,那么不同的损失函数可能会表现得更好.