逻辑回归 正负类 loss

2019-10-10  本文已影响0人  谢小帅

逻辑回归在 log 前的乘数项,是和 +1-1 对应的
恰好能将针对不同 GT y 的 loss 统一成 1个式子

import numpy as np


def loss(y, y_pred):
    # loss[y=1] + loss[y=-1]
    return -((1 + y) / 2 * np.log(y_pred) + (1 - y) / 2 * np.log(1 - y_pred + 1e-30))


# examples
print(loss(1, 0.999))  # 'TP' 正例样本 正确概率
print(loss(1, 0.001))  # 'FN' 正例样本 错误概率
print(loss(-1, 0.001))  # 'TN' 负例样本 正确概率
print(loss(-1, 0.999))  # 'FP' 负例样本 错误概率

# vectors
y = np.array([1, 1, -1, -1])
scores = np.array([0.9, 0.1, 0.1, 0.9])
print(loss(y, scores))
0.0010005003335835344
6.907755278982137
0.0010005003335835344
6.907755278982136
[0.10536052 2.30258509 0.10536052 2.30258509]
上一篇 下一篇

猜你喜欢

热点阅读