用户偏好匹配推荐系统(pearson correlation)

本文关键字:系统 pearson correlation 用户 | 更新日期: 2023-09-27 18:20:22

我将首先指出这一点,我对算法的了解非常有限,我正在使用推荐系统改进这一点(这是为了我自己的教育利益)。

背景

到目前为止,我有一个用户偏好列表,可以与其他用户偏好进行关联。每个用户将拥有以下数据:

  • 专业:(商科、计算机科学、护理等)
  • 性别:(男、女)
  • 年龄:(数值)
  • 种族:(美洲印第安人/阿拉斯加原住民、黑人/非裔美国人、西班牙裔/拉丁裔、亚裔/太平洋岛民、白人、非西班牙籍)

我的目标是对相互参与的人进行排名。因此,User1会有一个排名用户列表,如下所示:

  1. 用户4-89%
  2. 用户20-34%
  3. 用户234-31%

现在,如果我给每个用户的偏好打分(1-5),我就可以进行排名。然后使用皮尔逊系数对它们进行排序。用户类的映射如下:

用户1:(姓名、职级)

  • 专业->计算机科学,3
  • 性别->男性,5
  • 年龄->18,5
  • 种族->白人,3

我找到了这个链接,似乎接近我想做的:用户与当前数据匹配

问题

  • 我在这个过程中使用了正确的算法吗
  • 我怎么能取"计算机科学"之类的东西,并给它一个与皮尔逊系数一起使用的值
  • 我可以即时生成"等级"吗?(我该怎么做?)

我使用的编程语言是C#。此外,如果可能的话,我想在没有图书馆帮助的情况下完成这项工作,因为我的目标是学习更高级的CS主题。

感谢

用户偏好匹配推荐系统(pearson correlation)

首先需要构建的是一个特征向量。让我举例说明一种方法。请注意,这不是唯一的方法。

你有分类变量。(至少大部分)。

对用户有效的每个功能。。指示为1,否则为0

假设您的特征向量由指示

[Business, Computer Science, Nursing, Male, Female , American Indian/Alaskan Native, African American, Hispanic/Latino, Asian/Pacific Islander, White, Not of Hispanic Origin ]

请注意,我在这里忽略了年龄,因为年龄是一个数字特征,而不是分类特征。

解决这个问题的一种方法是,离散化你的年龄变量。。即将年龄表示为0-10.10-20..,依此类推。。通过这种方式,你可以将这些桶表示到等式中。

现在想象一下,你有一个计算机科学专业的用户,美国印第安人男性这可以表示为:

[0,1,0,1,0, 1 .......]

在此表单中指明您的所有用户…

在你用这种形式(特征向量)指示了所有用户之后,你可以进行点积(余弦相似性)或使用任何相似性度量来达到你的目的。相似性得分越高,用户越相似。您可以使用此得分对用户进行排名。希望这能有所帮助。