Lon*_*guy 21 regression machine-learning data-mining
在最小二乘模型中,成本函数被定义为预测值和实际值之间的差的平方,作为输入的函数.
当我们进行逻辑回归时,我们将成本函数更改为对数函数,而不是将其定义为sigmoid函数(输出值)和实际输出之间差异的平方.
是否可以更改和定义我们自己的成本函数来确定参数?
Fre*_*Foo 28
是的,你可以定义自己的损失函数,但如果你是新手,你可能最好使用文献中的一个.损失函数应满足条件:
它们应该近似于您试图最小化的实际损失.正如在另一个答案中所说,用于分类的标准损失函数是零一损失(错误分类率),用于训练分类器的标准损失函数是该损失的近似值.
不使用线性回归的平方误差损失,因为它不能很好地逼近零损失:当您的模型预测某些样本为+50而预期答案为+1(正类)时,预测为决策边界的正确边,所以零丢失为零,但平方误差损失仍然是49²= 2401.一些训练算法将浪费大量时间使预测非常接近{-1,+ 1}而不是专注于正确的标志/类标签.(*)
损失函数应该与您的预期优化算法一起使用.这就是为什么不能直接使用零损失的原因:它不适用于基于梯度的优化方法,因为它没有明确定义的梯度(甚至是子梯度,如SVM的铰链损耗).
直接优化零丢失的主要算法是旧的感知器算法.
此外,当您插入自定义损失函数时,您不再构建逻辑回归模型,而是构建其他类型的线性分类器.
(*)的平方误差是使用线性判别分析,但是这通常是在靠近形式而不是迭代求解.
use*_*913 10
使用逻辑函数,铰链损失,平滑铰链损耗等,因为它们是零 - 一二进制分类损失的上限.
这些函数通常也会对正确分类但仍在决策边界附近的示例进行处罚,从而创建"边距".
所以,如果你正在进行二元分类,那么你当然应该选择一个标准的损失函数.
如果您正在尝试解决其他问题,那么不同的损失函数可能会表现得更好.
| 归档时间: |
|
| 查看次数: |
16066 次 |
| 最近记录: |