ndcgs.append(ndcg_i) print(ndcg_i) #sys.exit(0) print("precision:") i = 0 precisions = [] while i < top_k: y_pred = test_pred[:, 0:i + 1] i = i + 1 precision = func_eval._precision_score(y_pred, y_real) precisions.append(precision) print(precision) print("recall:") i = 0 recalls = [] while i < top_k: y_pred = test_pred[:, 0:i + 1] i = i + 1 recall = func_eval.new_recall(y_pred, y_real) recalls.append(recall)
#-----in test set, find the sample indices of each label--------------------- #-----then evaluate each label and append to recalls,ncdgs,precisions-------- for j,label in enumerate(new_sort_list): indices = [i for i, l in enumerate(y_test) if l == label] each_label_real=[y_test[i] for i in indices] # if(each_label_real==[]): # f1_score[j]=0 # print(f1_score[j]) # continue each_label_predict=np.array([test_predict_top_k[i] for i in indices]) each_labels_to_eval=np.array([labels_to_eval[i] for i in indices]) precision=func_eval._precision_score(each_label_predict,each_labels_to_eval) precisions[j]=precision recall=func_eval.new_recall(each_label_predict,each_labels_to_eval) recalls[j]=recall ncdg=func_eval._NDCG_score(each_label_predict,each_labels_to_eval) ncdgs[j]=ncdg #print('\nrecalls:',recalls) #print('precisions:',precisions) #print('ncdgs:',ncdgs) #----------3. split labels into group by label frequency------------------------- #-----------get the evaluation of each group------------------------------
ndcgs.append(ndcg_i) print(ndcg_i) #sys.exit(0) print("precision:") i = 0 precisions = [] while i < top_k: y_pred = test_predict_top_k[:, 0:i + 1] i = i + 1 precision = func_eval._precision_score(y_pred, labels_to_eval) precisions.append(precision) print(precision) print("recall:") i = 0 recalls = [] while i < top_k: y_pred = test_predict_top_k[:, 0:i + 1] i = i + 1 recall = func_eval.new_recall(y_pred, labels_to_eval) recalls.append(recall)
real_labels=np.array([np.array([l]) for l in real_labels]) pred_labels=test_pred[test_label_map_ind[l]] print('\nlabel:',l) print("precision:") i = 0 precisions = [] while i < top_k: y_pred = pred_labels[:, 0:i+1] i = i+1 precision = func_eval._precision_score(y_pred,real_labels) precisions.append(precision) print(precision) print("recall:") i = 0 recalls = [] while i < top_k: y_pred = pred_labels[:, 0:i+1] i = i+1 recall = func_eval.new_recall(y_pred, real_labels) recalls.append(recall)