本文共 713 字,大约阅读时间需要 2 分钟。
在上两次博客中,我们定义分类问题的损失函数,其中用到的Label都是one-hot形式,其实真不一定必须用one-hot,不过用one-hot的主要因素包括(在PyTorch中我们不用显式地自己把标签(一维列表或一维数组形式的整数索引)转换为one-hot形式,函数内部会自动转换):
- one hot的形式无法比较大小。如果你预测的label是苹果,雪梨,香蕉,草莓这四个,显然他们不直接构成比较关系,但如果我们用1,2,3,4来做label就会出现了比较关系,labe之间的距离也不同。有了比较关系,第一个label 和最后一个 label的距离太远,影响模型的学习。因为模型觉得label 1和label 2最像,和最后一个label 最不像。不过当你的label之间存在直接的比较关系,就可以直接用数字当label。例如你做一个风控模型,预测的是四个风险类别[低,中,高,紧急],其实你也可以用1,2,3,4来做label,因为确实存在一个比较。但这本质上就成了回归问题。所以如果用one-hot表示Label,就不会构成比较关系。
- one hot的形式还可以计算top N准确度。预测的结果将会是[0.1, 0.6, 0.2, 0.1]这样的形式,我们一般取概率最高的那个为预测结果,假设这四个label还是[苹果,雪梨,香蕉,草莓],如果真实的结果是雪梨,那么这个结果是top1 准确的。但如果实际结果是香蕉,但香蕉的概率排第二,那么这个结果也是top 2准确的。top N准确率在推荐类应用中很常用,你购物时经常会看到物品下方有N个推荐搭配,如果推荐模型的top N准确率越高,那么这个购物推荐的最后转化效果就越好
转载地址:http://szsdi.baihongyu.com/