假设有2000部电影,一家公司想向每位游客推荐一些电影(例如,最多5部电影)。其目的是学习如何预测如果推荐一组特定的电影,将选择哪部电影。
option-1 option-2 option-3 option-4 option-5 Selected-Movie
1. movie1 movie3 movie4 movie4
2. movie3 movie4 movie100 movie1000 movie1001 movie1001
3. movie4 movie5 movie34 movie34基于这个数据集,我想知道当示例1被推荐给一个客户时,他会访问movie4。因为功能的数量可能很高(这里有2000部电影),所以我认为使用热编码并不是一个好的选择。认为最多可以推荐5部电影,我认为考虑大小为5的向量可能是个不错的选择,如果推荐的电影数量小于5,空格将被替换为0。然而,在这种情况下,电影的扰动将是很重要的。例如,(1,2,3,4,5)将与(2,1,3,4,5)不同,我想考虑这两种情况相同。换句话说,全部5个!扰动应该是相同的,它们之间没有区别。此外,有了这样的数据表示,我认为不可能使用决策树,而有些算法,如Catboost是可行的。
我最喜欢的算法是可以生成规则的算法,比如决策树。如果您对数据表示和功能应该如何考虑有任何建议,我将不胜感激。
发布于 2021-01-10 01:20:36
在这个任务中,您缺少了一些东西:您没有任何特性来表示特定的访问者。
这意味着,你的模型所能预测的最好的电影是最常被任何访问者选择的电影。因此,模型可以从这样的数据集中学习到的唯一东西是将每个可能的序列与给定的序列中最频繁选择的电影关联起来。当然,对于没有出现在训练数据中的序列,它需要做一些概括,但是这是这个任务中最大的ML。理论上,只需计算联合频率序列+选择电影就可以完成任务,从而计算出给定序列的条件概率。
编辑
表示集合的标准方法是一种热编码。假设数据中有足够的实例,即使有2000种特性,它也是可行的。在这个基本选项中,您当然可以通过删除从未/很少建议或从不/很少选择的电影来减少功能的数量。这不太可能达到性能,因为如果没有或很少有电影被提议/选择的情况,那么模型就不能使用这些信息(或者它会导致过度匹配)。
我可以想出几种替代的方法:
要预测所选影片,只需选择3-5中排名最高的电影。
https://datascience.stackexchange.com/questions/87718
复制相似问题