r - 如何计算用户偏好?
问题描述
根据用户评估的数据,它试图找到相似的用户。
当我使用 R 获得以下数据时,如何找到相似的用户?
用户 2 更像用户 1。
这个怎么计算?
> str(df)
'data.frame': 9 obs. of 3 variables:
$ user : chr "user1" "user1" "user1" "user2" ...
$ movie: chr "movie1" "movie2" "movie3" "movie1" ...
$ score: num 5 4 3 4 4 3 3 4 5
解决方案
也许您可以使用个体之间距离的概念(取自数据挖掘技术作为 ML 的第一步):
#Data
df <- data.frame(user=paste0('user',1:3),
movie1=c(5,4,3),
movie2=c(4,4,4),
movie3=c(3,3,5))
#Format
df2 <- df
rownames(df2) <- df2$user
df2$user <- NULL
#Compute distance
dist(df2)
输出:
dist(df2)
user1 user2
user2 1.000000
user3 2.828427 2.236068
基于先前的结果,user1
并且user2
它们之间的距离更小(它们更接近),因此它们可以更相似。我将把它作为一个选项留给你,因为其他数据挖掘方法可能更适合理解你想要达到的目标。
推荐阅读
- julia - Julia 1.4.2 - 平滑数组
- python - Python:如何使用字符串按名称设置函数参数
- python - 为什么python没有main函数?
- c++ - BST,改变所有节点的数据值
- algorithm - 来自未排序点数组的近似线段
- javascript - 将JS合并为一个文件后,slick不起作用
- ios - Xcode 12 - AppName 的架构 (arm64) 不包括 iPhone 11 Pro 可以执行的架构(英特尔 64 位)
- javascript - mapbox-gl 中的集群属性
- javascript - 简单的 React 文件上传,不附加表单数据
- javascript - 从本地主机上的不同端口获取错误