美文网首页
Precision,Recall以及F值——以Movielens

Precision,Recall以及F值——以Movielens

作者: pzle | 来源:发表于2021-03-21 15:09 被阅读0次

    概念

    1.precision:提取出的正确信息条数 / 提取出的信息条数
    2.recall:提取出的正确信息条数 / 样本中的信息条数
    3.F值:precision和recall有时会出现矛盾,所以通常要综合考虑,F值即为此而生。其为上述两者的调和平均值

    举例:渔夫捕鱼。

    池塘中有鲤鱼800条,虾200只。以鱼为目标,撒网共捕捞鱼400条,虾100只。
    则:
    precision = 400 /(400+100)* 100% = 80%
    recall = 400 / 800 * 100% = 50%
    F1Measure = 2 * (precision * recall) / (precision + recall) = 61.54%

    Movielens中相关代码:

        # 产生推荐并通过准确率、召回率和覆盖率进行评估
        def evaluate(self):
            print("Evaluation start ...")
            N = self.n_rec_movie
            # 准确率和召回率
            hit = 0
            rec_count = 0
            test_count = 0
            # 覆盖率
            all_rec_movies = set()
    
            for i, user, in enumerate(self.trainSet):
                test_movies = self.testSet.get(user, {})
                rec_movies = self.recommend(user)
                for movie, w in rec_movies:
                    if movie in test_movies:
                        hit += 1
                    all_rec_movies.add(movie)
                rec_count += N
                test_count += len(test_movies)
    
            precision = hit / (1.0 * rec_count)
            recall = hit / (1.0 * test_count)
            FMeasure = (2 * precision * recall ) / (precision + recall)
            coverage = len(all_rec_movies) / (1.0 * self.movie_count)
            print('precisioin=%.4f\trecall=%.4f\tcoverage=%.4f\tFMeasure=%.4f' % (precision, recall, coverage, FMeasure))
    

    引用

    1.https://blog.csdn.net/zhu_9527/article/details/38820623?utm_source=po_vip
    2.https://codechina.csdn.net/mirrors/xingzhexiaozhu/MovieRecommendation

    相关文章

      网友评论

          本文标题:Precision,Recall以及F值——以Movielens

          本文链接:https://www.haomeiwen.com/subject/wsewcltx.html