借助 torchmetrics
的 CompositionalMetric
将越大越好的指标作为损失函数
在量化研究中,我们可以使用诸如 IC
一类的指标来衡量信号的质量。若将 IC
作为损失函数,我们自然是希望其值越大越好。但是,模型的优化过程总是朝着损失函数越小的方向进行的,因此我们需要将 IC
取反后作为损失值,使得模型朝着 IC
越大的方向优化。
本文介绍了一个便捷的方法,借助 torchmetrics
的 CompositionalMetric
将越大越好的指标作为损失函数。
Python
pred = torch.tensor([1, 2, 3, 4]).to(torch.float32)
target = torch.tensor([2, 3, 5, 10]).to(torch.float32)
print("原始相关系数:", np.corrcoef(target, pred)[0, 1])
loss_fn = 0 - PearsonCorrCoef()
print("损失函数:", loss_fn(pred, target))