我正在尝试解决一个问题,需要一些指导。任何建议都欢迎,无论是可以搜索的关键词还是一些指示!
我有一份包含5个项目的列表。所有项目具有相同的特征,假设每个项目有3个特征。我将列表传递给一个排名函数,该函数会考虑列表中每个项目的特征,并返回这些项目的任意排序列表。
例如,如果我将项目列表(a, b, c, d, e)传递给排名函数,我得到的结果是(e, a, b, d, c)。问题在于,我不知道排名函数是如何工作的。我所拥有的只是5个项目的列表(这里的5只是举例,实际数量可以大于1),每个项目的特征以及排名函数的结果。
目标是训练一个模型,该模型可以像排名函数那样输出5个项目的有序列表。
我可以使用哪种机器学习模型来支持这种排名概念?另外,我无法确定这是一个分类问题还是回归问题。我不是要确定一个连续值或对项目进行分类,而是想确定它们在排名函数中的相互排名情况。
我可以使用无限数量的项目,因为这些项目是我自己生成的。排名函数可以是任何函数,但假设它是这样的:
为每个项目分配一个得分 = 1/3 * (x1 + x2 + x3),并按得分降序排序
模型的目标是尽可能准确地猜测排名函数是怎样的,通过对同一批5个项目输出相似的结果。
提前感谢!
回答:
这可以被视为一个回归问题,方法如下:你有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)具有“通用逼近”能力,给定一个黑盒函数,它们可以任意接近地逼近它,这取决于隐藏单元的数量。因此,构建一个两层的MLP,输入为五个特征向量,输出为五个排名得分。你将最小化平方和误差函数,即经典的回归误差函数。并且不要使用任何正则化项,因为你试图模拟一个确定性的黑盒函数,该函数的输出没有固有的随机噪声,所以你不必担心过拟合问题。