コード例 #1
0
ファイル: utils.py プロジェクト: HERECJ/two_pass
 def compute_item_metric(test: ss.csr_matrix,
                         mat_rank: ss.csr_matrix,
                         cand_count: np.ndarray,
                         cutoff: int = 200):
     rel_count = (test != 0).sum(axis=1)
     istopk = mat_rank.max() < test.shape[1] * 0.5
     recall, precision, map = Eval.compute_recall_precision(
         mat_rank, rel_count, cutoff)
     ndcg = Eval.compute_ndcg(test, mat_rank, cutoff)
     if not istopk:
         auc, mpr = Eval.compute_auc(mat_rank, rel_count, cand_count)
         return {
             'item_recall': recall,
             'item_prec': precision,
             'item_map': map,
             'item_ndcg': ndcg,
             'item_mpr': mpr,
             'item_auc': auc
         }
     else:
         return {
             'item_recall': recall,
             'item_prec': precision,
             'item_map': map,
             'item_ndcg': ndcg
         }