使用地面真相标签和预测标签列表进行评估

时间:2019-04-23 10:46:45

标签: python-3.x statistics precision-recall

目前,我正在尝试根据练习的描述来预测统计练习中的前五名/ 10。主题和练习(带有地面真实标签,为整数)以CSV格式提供。地面真相标签也出现在受试者的CSV中,并称为“ id”。

我当前的模型会生成一个元组,供您进行日常锻炼,其中第一个元素是地面真实标签,第二个元素是预测标签的列表。

然后我的问题是:如何计算(精度),精度,召回率和F1(如果可能,还应计算MRR和MAR)?

此外,所有练习和主题都将转换为向量。此外,我通过计算在前5/10中存在地面事实的所有实例并将其除以演习总数来计算准确性。

*注意:在代码中练习=问题,主题= kc

我的变量如下:

question_data = df[['all_text_clean', 'all_text_as_vector', 'groud_truth_id'] ].values

kc_data = subject_df[['id', 'all_text_as_vector']].values

然后,我遍历每个运动问题对:

question_candidates = []

for qtext, qvec, gt_id in question_data:

    scores = []

    for kc_id, kc_vec in kc_data:
        score = distance.cosine(qvec, kc_vec) # calculate cosine similarities

        scores.append((kc_id, score)) # kc_id and related store cos-sim

    scores = sorted(scores, key=itemgetter(1)) # sort cos-sims and related ids

    candites = [id for id, score in scores][:5] # only id is relevant. These are the suggestions

    question_candidates.append((gt_id, candites))

准确度适中:大约0.59。我不希望有更高的结果,因为这只是一个基准模型。

0 个答案:

没有答案