如何在JavaScript中预测数据集中的值?

时间:2017-07-06 10:05:46

标签: javascript math predict

要点

我的问题是"如何预测JavaScript中数据集的值?"。为了解释我的问题,我将举例说明我想要的结果。

如果你正在使用Mathematica,你可能知道有一个Predict[]功能。我认为如果我可以在JavaScript中执行类似的功能,它可能会很棒。我知道Mathematica功能正在使用机器学习和其他很酷的技术,我不太了解它们,因此,为了保持简单,我尝试通过我所说的实现这个Predict[]功能"仿射变换预测"。

如果你从学校开始记得,仿射函数的写法就像f(x)=ax+b

我知道从2个值中,您可以轻松了解ab是什么。

我的实施

这是我目前的代码:

function predict(array1, array2, val) {
    var first = array1[0]
    var second = array2[0]
    var firstVal = array1[1]
    var secondVal = array2[1]
    var a = (firstVal - secondVal) / (first - second)
    var b = secondVal - (second * a)
    return val * b;
}

所以,array1将是" start"价值(我不会用英语知道这个词,但用法语知道"先前的"),以及该功能的形象。

array2将是相同的,但对于不同的"开始"价值和形象。

val将是函数预测值的位置。

工作原理示例:

我们假设我们有f(x)=2x+1函数,我们知道1->32->5有效。所以,我们想知道(不知道当然的功能)f(3)会给我们什么,所以我们写道:

predict([1,3],[2,5],3)

通常,它会返回7.

我的问题

这个功能的主要问题是它的工作方式。我想简化它。让我解释一下,我的功能看起来像那样:

function predict(object, val) {
    ...
}

其中object类似于:{ 1: 3, 2: 5, 4: 9}。像JSON对象中有两个或更多值的东西,我想更准确,但也有一个单词" dataset"在里面。因为,问题是目前,该功能不能被称为predict功能,因为它更像affineTransformationFinder功能。

由于您理解的众多原因,在JavaScript中操作对象比数组更简单。

我试图解释我的观点,我希望你能同意我的观点。如果您有任何疑问,请随时添加评论,我很乐意回答。

1 个答案:

答案 0 :(得分:1)

Object.keys()是你正在寻找的东西 - 当传递一个对象时,它返回一个键的数组,你可以迭代它并传回给对象来检索属性值。