学习如何将数值映射到数组中

时间:2013-04-22 12:26:16

标签: machine-learning

全部交易,

我正在寻找一种合适的算法,可以让我学习一些数值如何映射到数组中。

试着想象我有这样的训练数据集:

1 1 2 4 5 --> [0 1 5 7 8 7 1 2 3 7]
2 3 2 4 1 --> [9 9 5 6 6 6 2 4 3 5]
...
1 2 1 8 9 --> [1 4 5 8 7 4 1 2 3 4]

因此,给定一组新的数值,我想预测这个新数组

5 8 7 4 2 --> [? ? ? ? ? ? ? ? ? ?]

非常感谢你。

祝你好运!


一些注意事项:

  • 让我们假设所有数字都是整数,并且数组的长度是固定的
  • 每个预测阵列的质量可以通过距离函数来确定,该距离函数试图测量理想阵列和预测阵列之间的相似度。

2 个答案:

答案 0 :(得分:1)

这一般来说这是一项具有挑战性的任务。你的阵列长度是固定的吗?什么是损失函数(例如,对于单个数字更接近“更好” - 预测2而不是1比预测9更好或者无关紧要?你是否得到了阵列上部分匹配的功劳,例如预测上半部分正确吗?等等?

在任何情况下,经典的回归或分类技术可能无法很好地适用于您的场景。我认为最好的办法是尝试genetic programming方法。那么健身功能就是我前面提到的损失量。你可以检查这个不错的comparison用于不同语言的遗传编程库。

答案 1 :(得分:0)

这称为structured output problem,您尝试预测的目标是一个复杂的结构,而不是简单的类(分类)或数字(回归)。

如上所述,损失函数是您必须考虑的重要事项。可以使用最小编辑距离,RMS或简单的0-1损失。

对于结构化输出问题,

Structured support vector machine或岭回归的变化是两种已知的算法,可以解决这个问题。当然,请参阅维基百科。

我们在Universite Laval(加拿大)有一个关于这个主题的研究小组,由Mario Marchand和Francois Laviolette领导。您可能希望搜索他们的出版物,如Sebastien Giguere等人的“风险界限和结构化输出预测的回归方法的学习算法”。

祝你好运!