找到与输入和输出匹配的数学算法

时间:2015-07-17 00:06:56

标签: java algorithm math machine-learning

作为最终结果,我想要一个可以接受输入和输出列表的计算机程序,然后将相同的算法应用到另一个数字上的那些输入/输出中,即:

如果给出这个输入/输出列表

2:4
4:8
100:200

根据我们的需要,它会认识到算法是(输入* 2)或(输出/ 2)。

因此,如果给出数字16,并且要求产生输出,则程序将以32响应。如果给出数字10并且要求产生输入,则它将以5响应。

硬编码显然很简单。这个进入程序,虽然我想学习如何让程序自学这个算法是什么。我知道这会变得相当复杂。

1 个答案:

答案 0 :(得分:1)

对于任何类型的输入/输出信号依赖性,你都不能可靠地做到这一点,而你应该只支持一些你需要某种AI或非常复杂的神经网络+ 很多功能发生器,具有疯狂的复杂性和解决方案的未知可靠性......

我会将此简化为依赖项,例如:

  1. 多项式达到某种程度

    • (可以使用任何插值/近似)
    • y=a0+a1*x+a2*x*x+a3*x*x*x
  2. 指数

    • y=a0+a1^x
  3. 其他

    • 如果你想支持像sin wave这样的东西,那么你需要很多输入来决定依赖的类型。
  4. 无论如何,我认为只有3个输入点是不够的

    • 例如多项式a0+a1*x+a2*x*x+a3*x*x*x=y需要至少4个点

    首先,您应该确定它的依赖类型,然后尝试查找该特定函数生成器的系数。例如:

    • 如果您有输入x0<x1<x2<x3,...并输出y0,y1,y2,y3,..
    • k0=y0/x0,k1=y1/x1,...
    • 如果k0<<k1<<k2<<k3<<...k0>>k1>>k2>>k3>>...可能是指数依赖
    • 否则使用多项式......

    如果你有混合型信号,那么你需要更多的输入点来覆盖足够大的范围,并且可能需要某种approximation search个系数来最小化已知输入和生成输出之间的距离。如果您有足够的积分,您可以规范化数据集并使用correlation coefficient将其与支持的函数生成器进行比较,以简化决策

    <强> [注释]

    所以你需要指定:

    • 支持哪种依赖(类型,单数,组合)
    • 您有多少输入点(最小,推荐等...)
    • 目标精度/错误是什么
    • x,y
    • 的目标范围是多少