几种用户相似度计算方法及其优缺点

2023-11-09

 进行用户协同过滤时,一个关键问题是如何计算用户之间的相似性。比较常见的计算用户相似度的算法有余弦相似性、皮尔森系数、调整余弦相似性三种。

    这三种相似性都是基于一个称为用户-项目矩阵的数据结构来进行计算的。该数据结构如下:
    几种用户相似度计算方法及其优缺点

    余弦相似性:把用户评分看作是n维项目空间上的向量,通过计算两个向量之间的夹角余弦来度量两个用户之间的相似性。

    皮尔森系数:又称相关相似性,通过Peason相关系数来度量两个用户的相似性。计算时,首先找到两个用户共同评分过的项目集,然后计算这两个向量的相关系数。
    调整余弦相似性:将余弦相似性中的向量,减去用户平均评分向量后,再计算夹角余弦以修正不同用户评分尺度不同的问题。

    在数据比较稀疏的情况下,这几种方法均存在一定问题:余弦相似性和调整余弦相似性对于用户未评价项目评分为0的假设;皮尔森系数中用户共同评分项目集可能很小。

    在垂直搜索引擎中,用户数据具有相当的稀疏性。所以需要通过一定的手段来消除这种稀疏性。我的思路:
    1.垂直搜索中存在一个项目的目录(树形结构),如果自顶向下进行评分,并将子项目分数与父项目分数按一定规则运算后作为最后评分。从而填充稀疏矩阵为密集矩阵。
    2.按照密集矩阵进行推荐。

   

 

转载于:https://my.oschina.net/u/347386/blog/500806

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

几种用户相似度计算方法及其优缺点 的相关文章

  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • Django4.0+使用rest_framework_jwt的问题

    问题描述 python版本 3 10 Django版本 4 1 djangorestframework jwt版本 1 11 0 在写jwt认证功能时 发现run的时候会报以下错误 from django utils translation
  • VUE 自身页面跳转自身页面

    先说一下要实现的功能 点击原案件 要回到原案件 但是原案件页面和现在的页面一样 也就是自身跳转自身页面 路由地址不变 使用vue祖传的push 方法来挑转的话 你会发现可以跳转过去 但是页面会刷新 不会触发vue生命周期函数 方法一 thi
  • [转]No response for the toolbars in BEx Analyzer 2004s

    Summary Symptom After installing the frontend either from the CD or through applying the frontend support package or the
  • 2022年蓝桥杯省赛 C/C++ A组B题灭鼠先锋题解

    问题描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 灭鼠先锋是一个老少咸宜的棋盘小游戏 由两人参与 轮流操作 灭鼠先锋的棋盘有各种规格 本题中游戏在两行四列的棋盘上进行 游戏的规则为 两人轮流操作 每次可选择在
  • 《UNIX网络编程》卷一第四章学习笔记

    UNIX网络编程 卷一第四章学习笔记 4 2 socket函数 include
  • 2023华为OD机试真题【计算快递业务主站点/回溯法/深度优先搜索】

    题目描述 快递覆盖的范围有N的站 如果A和B都可以用来中转 我们就称A B站可达 如果A B可达 B C可达 则A C达 我们现在有N个编号 如果s i j 1 表示i j可达 如果s i j 0 表示i j不可达 现用二维数组给定N个站点
  • 使用python爬取微信公众号文章

    一 背景 有时候看到某一个微信公众号中的文章 觉得写的非常不错 有种当时就想把该公众号所有的文章都看完的冲动 但是使用手机看不是特别方便 就想把文章全部下载下来到电脑上面看 二 爬虫实现步骤 使用python爬取微信公众号文章 总共分为如下
  • 图片加载防闪动的CSS方法

    图片闪动 在移动端设置图片布局时 图片使用自适应的方式 其父元素的高度是被图片高度撑开的 在图片加载前 父元素高度为0 加载后 父元素高度为图片高度 这样的过程会造成视觉上的闪烁 影响用户体验 因此 在用图片撑开父元素高度之前 就需要给父元
  • 安装sql server时提示缺少.NET 3.5 sp1

    这几天遇到了一个问题 在安装sql server的时候总是提示我没有安装 NET framework 3 5 sp1 但是我电脑上已经安装了它 多次尝试之后我百思不得其解 今天终于解决了 我的系统是win8升级上来的win10 在升级的时候
  • 一种横向业务的解决方案 -- AOP

    AOP Aspect Oriented Programming 即面向切片编程 所谓面向切片编程 就是可以按照时间 将程序分成无数个时间节点 利用AOP的思想 可以在任何一个时间节点插入其他的代码 来实现自己的业务需求 换句话说 对于那些非
  • java循环栅栏CyclicBarrier 使用详解

    1 CyclicBarrier 是什么 从字面上的意思可以知道 这个类的中文意思是 循环栅栏 大概的意思就是一个可循环利用的屏障 它的作用就是会让所有线程都等待完成后才会继续下一步行动 举个例子 就像生活中我们会约朋友们到某个餐厅一起吃饭
  • 单片机c语言屏蔽第四位,【单片机C语言基础入门】第四章:运算符与表达式

    大家好 今天和大家探讨的是单片机C语言中的运算符和表达式 前边介绍了C语言中的变量的表示 然而在计算的过程中只有变量是不能完成计算的 因此运算符和表达式为变量 包括常量 来做特定的操作 来实现数据的运算 因此运算符和表达式是C语言中不可或缺
  • 网卡多队列 (解决traceroute路由不能直达)以及高丢包问题

    多队列指实例规格支持的最大网卡队列数 单个ECS实例vCPU处理网络中断存在性能瓶颈时 您可以将实例中的网络中断分散给不同的CPU处理 经测试 在相同的网络PPS和网络带宽的条件下 与1个队列相比 2个队列最多可提升性能达50 到100 4
  • Keras-9 实现Seq2Seq

    A ten minute introduction to sequence to sequence learning in Keras 简单介绍如何用Keras实现Seq2Seq模型 原文链接 https blog keras io a t
  • SIMD简介

    SIMD简介 知乎本篇文章包含的内容有SIMD指令集简介以及简短的practice环节 1 SIMD的历史与分类SIMD Single Instruction Multiple Data 即单指令流多数据流 是一种采用一个控制器来控制多个处
  • 【EI检索】第五届信号处理与机器学习国际会议

    2022年第五届信号处理与机器学习国际会议 SPML 2022 及其分会2022年第四届人工智能技术国际会议 AITC 2022 将于2022年8月4 6日在中国大连召开 SPML AITC 2022目前已成功在上海 杭州 北京 线上召开过
  • c++实验总结_史上最全场景文字检测资源合集(70篇重要论文 + 15个开源代码 + 176个实验结果 + 1305个统计信息)...

    本文总结了2012年以来在场景文本检测领域的70篇代表性论文 21个常用数据集 15份开源代码 包含176个实验结果以及超过1300条统计信息 Github资源链接见文末 一 前言 许多自然场景中包含着丰富的文本信息 对于理解自然场景图像有
  • 2020 mse 清华_【清华大学】清华大学2020届推免生入围名单汇总

    我把能找到的清华入围名单 进入复试名单 都给大家发一下 做一个资料备份 尤其是有些系所的名单有本科学校 这可是非常珍贵的分析资料 首先给我的现在专业 招生简章 清华大学经济管理学院 http masters sem tsinghua edu
  • pop服务器未响应,servlet测试控制台无反应啊??求大神帮忙,

    String path request getContextPath String basePath request getScheme request getServerName request getServerPort path gt
  • 几种用户相似度计算方法及其优缺点

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 进行用户协同过滤时 一个关键问题是如何计算用户之间的相似性 比较常见的计算用户相似度的算法有余弦相似性 皮尔森系数 调整余弦相似性三种 这三种相似性都是基于一个称为用户 项