当二分类loss在0.693并且一直不降的时候,就应该意识到模型出问题了,当然可能是你的模型结构出问题或者设置的参数不合适。三个问题,logloss是可以大于1的吗?它的正常范围应该是多少?一般多小的logloss算是好的分类器?
logloss可以大于1,但是对于二元分类来说,大于1说明这个模型是比较糟糕。
回顾一下loglosslogloss的公式
其中n是测试样本的个数,pi为预测第i个样本为阳性的概率,yi表示第i个预测样本的真实标签(1代表阳性,-1代表阴性)。
我一开始就说了大于1的logloss是很差的。0.8依然很差。我凭什么这么说?
假如我们现在有个训练集,100万个数据点,其中10万个为阳性,那么总体上每个样本为1的概率可近似认为是0.1。通常来说,测试集的分布是非常接近于训练集的,那么测试集中大概有10%的样本为阳性。如果我们预测测试集中每个样本为1的概率都为0.1,那么logloss会是多少呢?
假如总体分布是每个样本以p的概率为阳性,我们预测每个样本为阳性的概率都为p,也就是pi=p,那么logloss是多少呢?
很显然
所以最差的情况就是,样本正好是一半阳性一半阴性,此时你按照上面方面预测(乱猜)出的logloss是0.693。所以当loss是0.693,差不多就说明模型已经混乱了。当然上面的情况是在KL散度等于0的情况下得出的,解释如下:
reference: