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

How to predict a value from a dataset in JavaScript?

我的问题是"How to predict a value from a dataset in JavaScript?"。为了解释我的问题,我将以我想要的结果为例。

如果您使用 Mathematica,您可能知道有一个 Predict[] 函数。而且我认为如果我可以在 JavaScript 中执行类似的功能,那就太棒了。我知道 Mathematica 函数正在使用机器学习和其他我不太了解的很酷的技术,所以,为了简单起见,我尝试通过我称之为 "Affine transformation prediction".

如果你记得在学校,仿射函数写成 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" 值(我不知道英语中的单词,但在法语中是 "antecedent"),并且图像功能。

array2 将相同,但 "start" 值和图像不同。

val 将是函数必须在哪里预测值。

工作原理示例:

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

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

而且,通常情况下,它会 return 7.

我的问题

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

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

其中 object 类似于:{ 1: 3, 2: 5, 4: 9}。类似于 JSON 对象,其中包含 2 个或更多值,我想更准确地说,但也包含 "dataset" 一词。因为,问题是目前,该函数不能称为 predict 函数,因为它更像是一个 affineTransformationFinder 函数。

在 JavaScript 中操作对象比数组简单得多,原因有很多,您会明白。

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

Object.keys() 是您正在寻找的 - 当传递一个对象时,它 returns 它的键数组,您可以遍历它并传回对象以检索 属性 值。