最近做一个多标签的任务,需要对预测的top k index计算precision和nDCG。必要的一步是确定预测的index是否在groundtruth中。groundtruth
y_dev 是multi-hot形式,使用scipy中的稀疏矩阵存储。
判断i号样本的p号标签是否预测正确,只需要取 y_dev[i, p]的值即可(命中为1.0,不命中则为0.0),当数据量非常大时,访问的性能不可忽略。
scipy.sparse包下的稀疏矩阵有多种:
csr, csc, lil, dok和不支持位置索引取值的 coo, dia。