是否有一个 Javascript 库允许我传递以下函数,以便它找到导致最小返回值的 alpha。
var RMSE = runLES(this.monthlyData, this.alpha);
我在搜索中找不到任何内容,因为所有单词都与 Javascript 中其他更常见的问题相关(例如“最小化器”-> 缩小、“求解器”-> 求解方程等)。
或者有人对我如何自己实现这个有建议吗?
编辑: 这是函数体:
function runLES(data, alpha) {
var errors = new Array(data.length - 2);
for (var i = 2; i < data.length; i++) {
var Y1 = 2 * data[i - 1].noSeasonSales;
var Y2 = data[i - 2].noSeasonSales;
var E1 = 2 * (1 - alpha) * data[i - 1].error;
var E2 = Math.pow(1 - alpha, 2) * data[i - 2].error;
data[i].forecast = Y1 - Y2 - E1 + E2;
data[i].error = data[i].noSeasonSales - data[i].forecast;
errors[i - 2] = data[i].error;
}
return getRMSE(errors);
}
RMSE 是方差的根加上误差的平方平均值。 (只是一个数字)。
最佳答案
我取决于你有什么样的功能。 runLES()
做什么?
如果您的 alpha 有上限和下限,您可以使用二分搜索来查找最小值。如果你可以导出你的函数,你可以使用 Newton's method关于你的函数的导数。 详情请看这里:Newton's method in Optimization
只有在只有一个最小值的情况下,此方法才能正常工作。 (你的函数图不是波浪)
关于javascript - 寻找一个 js 求解器库,通过改变参数来最小化函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42387276/