我正在考虑编写一个应用程序,根据家庭成员的喜好对HTPC中的电影进行分类。

我不知道统计数据或人工智能,但这里的内容看起来非常多汁。我不知道从哪里开始做。

这就是我想要完成的事情:

  1. 撰写每个用户喜欢的一组样本,分别对每个样本属性进行评分。例如,也许用户喜欢西方电影很多,因此西方流派会为该用户带来更多的权重(等等其他属性,如演员,导演等)。

  2. 用户可以根据其他用户的喜好获得建议。例如,如果用户A和B都喜欢Spielberg(用户之间的连接),而用户B喜欢Batman Begins,但是用户A厌恶Katie Holmes,则相应地为用户A权衡电影(再次,每个属性分开,例如,也许用户A不喜欢动作片这么多,所以将评级降低一点,因为凯蒂霍姆斯不是主要的明星,所以不要考虑其他属性。

  3. 基本上,比较来自用户A的集合,类似于来自用户B的集合,并为用户A提供评级。

    我对如何实现这一点有一个粗略的想法,但我确信一些聪明的人已经考虑过一个更好的解决方案,所以...任何建议?

    实际上,经过快速研究,似乎贝叶斯过滤器可行。如果是这样,这会是更好的方法吗?它会像“正常化”那样简单吗?电影数据,为每个用户训练分类器,然后只对每部电影进行分类?

    如果您的建议包括一些脑融化概念(我在这些科目中没有经验,特别是在AI中),如果您在深入研究多肉之前还列出了一些基础知识供我研究,我将不胜感激。

    谢谢!

有帮助吗?

解决方案

有一些算法对此有好处:

ARTMAP:通过概率相互分组(这不是快速但对你的问题IMO来说是最好的)

ARTMAP拥有一组共同属性,并通过百分比确定可能性。 ARTMAP

KMeans:这将向量与它们彼此之间的距离分开 KMeans:Wikipedia

PCA:将分离变量位中所有值的平均值。这是您在计算机视觉中用于人脸检测和背景扣除的方法。 PCA

其他提示

这类似于这个问题所在的OP想建立一个推荐系统。简而言之,我们获得了一组训练数据,包括用户对电影的评分(例如1-5星评级)和每部电影的一组属性(年份,流派,演员......)。我们想要建立一个推荐器,以便为看不见的电影输出可能的评级。所以inpt数据看起来像:

user movie   year   genre   ...    | rating
---------------------------------------------
  1    1     2006   action         |    5
  3    2     2008   drama          |    3.5
  ...

和未评级的电影X:

10    20     2009   drama   ?

我们想预测一个评级。对所有看不见的电影执行此操作,然后按预测的电影评级排序并输出前10名,为您提供推荐系统。

最简单的方法是使用 k-nearest neighbor 算法。在评级的电影中,搜索“最近”的电影。电影X,并结合他们的评级产生预测。 这种方法的优点是易于从头开始实施非常简单。

存在其他更复杂的方法。例如,您可以构建决策树,以适应训练数据的一组规则。您还可以使用贝叶斯网络人工神经网络支持向量机,以及其他许多人......对于没有适当背景的人来说,经历这些过程并不容易。 我仍然希望你会使用外部工具/库。现在你似乎熟悉贝叶斯网络,所以一个简单朴素的贝叶斯网,实际上可能非常强大。一个优点是它允许在缺失数据下进行预测。

主要观点会有些相同;获取您拥有的输入数据,训练模型,然后使用它来预测新实例的类别。

如果你想在简单直观的包中使用不同的算法,不需要编程,我建议你看看 Weka (我的第一选择), Orange RapidMiner 。最困难的部分是将数据集准备为所需的格式。其余的就像选择算法并应用它一样简单(只需点击几下!)

我想对于那些不想进入太多细节的人,我建议使用最近邻法,因为它直观且易于实现。仍然可以选择使用 Weka (或其中一个工具)值得研究。

K最近邻算法可能就在你的小巷里。

查看顶级团队的一些工作,了解 netflix奖

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top