用于预测排名的ML模型(列表的任意排序)

时间:2016-12-02 23:25:32

标签: python machine-learning

我需要一些方向来解决我正在努力解决的问题。任何事情都会被赞赏,谷歌的关键词或一些迹象!

所以我有5个项目的清单。所有项目共享相同的功能,假设每个项目都有3个功能。 我将列表传递给排名函数,该函数考虑了列表中每个项目的特征,并返回这些项目的任意有序列表。

例如,如果我将以下项目列表(a,b,c,d,e)提供给排名函数,我得到(e,a,b,d,c)。 这是事情,我不知道排名功能如何工作。我唯一拥有的是5个项目的列表(例如5个,可以是任何大于1的数字),每个项目的功能和排名功能的结果。

目标是训练一个模型,该模型输出5个项目的有序列表,与排名功能完​​成相同。

我可以用什么ML模型来支持这种排名概念?此外,我无法确定它是分类还是回归问题。我不是要确定连续值或对项目进行分类,我想确定它们如何通过排名函数进行排名。

自从我自己生成这些项目以来,我必须处理无数项目。排名功能可以是任何东西,但我们可以说是:

attribute a score = 1/3 * ( x1 + x2 + x3 ) to each item and sort by descending score

该模型的目标是通过为同一批5个项目输出类似的结果,尽可能地猜测排名函数是什么。

提前致谢!

2 个答案:

答案 0 :(得分:1)

由于产生输出的未知函数,它是一个回归问题。具有2个隐藏层的神经网络,例如sigmoid可以学习任何任意函数。

答案 1 :(得分:1)

它可以被视为回归问题,具有以下技巧:给予5个具有5个特征向量的项目,“黑盒子”功能输出5个不同的分数为[1,2,3,4,5]。将这些视为连续值。因此,您可以将您的函数视为通过获取五个不同的输入向量x1,x2,x3,x4,x5并输出五个标量目标变量t1,t2,t3,t4,t5来操作,其中训练集的目标变量是获得项目得分。例如,如果单个样本的排名是(x1,4),(x2,5),(x3,3),(x4,1),(x5,2),那么设置t1 = 4,t2 = 5, t3 = 3,t4 = 1,t5 = 2。 MLP具有“通用近似”能力并且具有黑盒功能,它们可以任意接近它,取决于隐藏的单位数。因此,构建一个2层MLP,输入为五个特征向量,输出为五个排名分数。您将最小化平方和误差函数,即经典回归误差函数。并且不要使用任何正则化项,因为您将尝试模仿确定性的黑狐狸函数,该函数的输出中不存在固有的随机噪声,因此您不应该害怕任何过度拟合问题。