首页 > 解决方案 > 如何计算用户偏好?

问题描述

根据用户评估的数据,它试图找到相似的用户。

当我使用 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

在此处输入图像描述

标签: r

解决方案


也许您可以使用个体之间距离的概念(取自数据挖掘技术作为 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它们之间的距离更小(它们更接近),因此它们可以更相似。我将把它作为一个选项留给你,因为其他数据挖掘方法可能更适合理解你想要达到的目标。


推荐阅读