我正在研究CNN模型,我使用了一种热向量类型的标签。类数为3:一千零零、0,1,0、0 0 0 1。
net(x)我得到了这样一个输出:0.8439,0.1355,0.0757,这显然是第一类。问题:为什么这个向量中的值之和超过1?另外,我之前得到了这3的一个负值,这取决于它是什么,以及如何知道这些“输出”可能是什么。
发布于 2021-05-12 13:31:15
在这里,只对类进行一个热编码是错误的,因为它将任务转换为多标号分类而不是常规的多类分类。在您的任务中,实例只能有一个类,因此类应该编码为int (例如,使用LabelEncoder)。
这就是为什么预测的概率不等于1的原因,因为在多标签分类中,类是相互独立的。例如,输出0.9,0.4,0.7意味着1类标签在90%的预测为真,10%为假,2类标签为40%,假为60%,3类标签为70%,假为30%。在这个场景中选择3个类的最大概率是没有意义的。
另见这个答案。
https://datascience.stackexchange.com/questions/94335
复制相似问题