2017-02-22 1 views
0

최소한의 반환 값을 가져 오는 알파를 찾기 위해 다음 함수를 전달할 수있는 자바 스크립트 라이브러리가 있습니까?인수를 변경하여 함수 반환 값을 최소화하는 js 해석기 라이브러리를 찾으십시오.

var RMSE = runLES(this.monthlyData, this.alpha); 

모든 단어 자바 스크립트에서 다른 일반적인 문제 (예를 들어, '최소화 부'-> 파일 축소, '해결사'-> 해결 방정식 등) 관련이 있기 때문에 내 검색에서 아무것도 찾을 수 없습니다.

아니면 누군가 나 자신을 구현하는 방법에 대한 조언을 갖고 있습니까?

편집

:

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는 분산의 루트 플러스 오류의 평균 제곱 : 이 함수 기관이다. (그냥 숫자).

+0

함수는 무엇을해야합니까? 도서관에 묻는 것은 어떡 하지요. –

+0

runLES는 내 자신의 기능입니다. 두 개의 인수를 취하여 리턴 할 수를 계산합니다. 번호는 전달 된 알파에 따라 달라집니다. 가장 낮은 반환 값을 초래하는 알파 값을 찾고 있습니다. 알파 값은 0과 1 사이 여야합니다 (질문에서 잊어 버렸습니다). – smdufb

+1

예를 들어 시도해 볼 수 있습니다. Nelder-Mead (파생 무료) https://github.com/benfred/fmin. –

답변

1

나는 당신이 가진 기능의 종류에 달려 있습니다. runLES()은 무엇을합니까?

알파의 상한 및 하한 경계가있는 경우 최소 2 진 검색을 사용할 수 있습니다. 함수를 파생시킬 수 있다면 함수의 파생물에 Newton's method을 사용할 수 있습니다. 자세한 내용은 여기를 참조하십시오. Newton's method in Optimization

이 방법은 최소 한 개만 있으면 올바르게 작동합니다. (함수의 그래프가 일종의 웨이브가 아닙니다.)

+0

예, 알파에는 경계가 있습니다. 그러나이 기능은 불행히도 글로벌 최소형을 반드시 지닐 필요는 없습니다. 그리고 수학 기술은 어쨌든 부분 파생물을 파악하고 사용하기에 충분하지 않습니다. – smdufb

관련 문제