2010-04-07 4 views
0

데이터 집합에 대한 선형 추세선을 찾으려고합니다. 집합에는 날짜 쌍 (x 값)과 점수 (y 값)가 포함됩니다. 내 알고리즘의 기초로 this code 버전을 사용하고 있습니다.선형 회귀 및 Java 날짜

내가 얻는 결과는 몇 배 정도 떨어져 있습니다. 나는 당신에게 거대한 수의 밀리 세컨드를 제공하는 Date의 getTime 메소드를 사용하고 있기 때문에 에러 또는 오버 플로우가 발생하는 문제가 있다고 가정한다. 오류를 최소화하고 정확한 결과를 계산하는 방법에 대한 제안이있는 사람이 있습니까?

답변

2

아마도 Date가 반환하는 long 값을 더 작은 것으로 변환하는 데 도움이됩니다. 당신이 밀리 초 정밀도를 필요로하지 않는 경우

, 당신은 단지 어쩌면 당신도 또한 다른 60

에 의해 초, 분할이 필요하지 않습니다 1000로 나눌 수 있습니다, 값 1 월, 1 일, 1970 년의 경우에 고정되어 더 최근 날짜 만 필요하면 2000 년에 오프셋을 빼서 다시 기본으로 설정할 수 있습니다.

전체적인 아이디어는 데이터의 차이를 수치 적으로 (백분율별로) 만드는 것입니다.

0

unix timestamp의 유형은 정수이며 데이터를 이중으로 읽는 중입니다. 상대적인 크기에 따라 문제가 생길 수 밖에 없습니다.

시간 소인을 정수로 유지하거나 시간을 문제에 더 적합한 것으로 변환하십시오.

+0

실제로 getTime은 Unix 신기원 이후로 긴 밀리 초를 반환합니다. 그리고 그 알고리즘은 정수가 아닌 값 (예 : 평균)을 필요로하기 때문에'int' 또는'long's을 옵션으로 생각하지 않습니다. –