基于显式评分

简介: 基于显式评分

def ItemSimilarity(self):

    # 一个字典,记录 rui*ruj
    # 一个字典 记录 rui^2
    # 建立物品-物品的共现矩阵
    item2item = dict()  # 物品-物品的共现矩阵。记录rui*ruj,分子
    buy = dict()  # 物品被多少个不同用户进行过评分。记录rui*rui分母
    for user, items in self.data.items():
        for i in items.keys():
            buy.setdefault(i, 0)
            temp = items[i]*items[i]
            buy[i] += temp
            item2item.setdefault(i, {})
            for j in items.keys():
                if i == j: continue
                item2item[i].setdefault(j, 0)
                item2item[i][j] += items[i]*items[j]
    # 计算相似度矩阵
    self.similar_matrix = dict()
    for i, related_items in item2item.items():
        self.similar_matrix.setdefault(i, {})
        for j, cij in related_items.items():
            self.similar_matrix[i][j] = cij / (math.sqrt(buy[i]) * math.sqrt(buy[j]))
    return self.similar_matrix
目录
相关文章
|
2天前
|
机器学习/深度学习 数据可视化 数据挖掘
数据集中存在大量重复值时,如何选择合适的分析方法?
总之,当数据集中存在大量重复值时,需要综合考虑各种分析方法的特点和适用范围,根据具体的分析目标和数据情况选择合适的方法,或者结合多种方法进行综合分析,以获得准确、可靠的分析结果。
19 9
|
2月前
|
Apache
判定数据中是否包含某一属性的方法
判定数据中是否包含某一属性的方法
|
3月前
|
Java
封装、继承、多态的联合使用实现不同等级学生分数信息的统计
这篇文章通过Java代码示例演示了封装、继承和多态的概念,并用它们来实现不同等级学生分数信息的统计。
封装、继承、多态的联合使用实现不同等级学生分数信息的统计
|
4月前
修改预测函数
【7月更文挑战第22天】修改预测函数。
46 6
|
6月前
|
存储 Java
变量的分类和作用2
变量的分类和作用
42 1
|
6月前
|
Java 编译器
变量的分类和作用1
变量的分类和作用
57 0
|
资源调度 算法 关系型数据库
概率图推断之变量消除算法
事实证明,推理是一项颇具挑战的任务。对于很多我们感兴趣的概率,要准确回答这些问题都是NP难题。至关重要的是,推理是否容易处理取决于描述概率的图的结构。尽管有些问题很难解决,我们仍然可以通过近似推理方法获得有用的答案。
261 0
概率图推断之变量消除算法
|
测试技术
参数与非参数检验:理解差异并正确使用
数据科学是一个快速发展的领域,它在很大程度上依赖于统计技术来分析和理解复杂的数据集。这个过程的一个关键部分是假设检验,它有助于确定从样本中获得的结果是否可以推广到总体。
323 0
rpcms获取指定分类下的文章的方法
往往网站首页是不同模块对不同分类的文章进行展示,在制作首页的时候发现不知道该如何获取指定分类下的文章。查看了rpcms默认模板的代码,发现是把最新文章、最热文章这种功能性的单独封装成函数了,如果想获取指定分类下的文章就需要改改了。在网上找了找,看到rpcms论坛上有整理好的函数,就用了下试试,挺好的,还支持子分类的获取。《模板常用的功能函数整理》上面还有很多其他常用函数,可以看看有没有需求。