Линейная регрессия и даты Java - PullRequest
0 голосов
/ 07 апреля 2010

Я пытаюсь найти линейную линию тренда для набора данных. Набор содержит пары дат (значения x) и баллов (значения y). Я использую версию этот код в качестве основы моего алгоритма.

Результаты, которые я получаю, отклоняются на несколько порядков. Я предполагаю, что есть некоторая проблема с ошибкой округления или переполнением, потому что я использую метод DateTime getTime, который дает вам огромное количество миллисекунд. Есть ли у кого-нибудь предложения о том, как минимизировать ошибки и вычислить правильные результаты?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2010

Может быть, это поможет преобразовать длинное значение, которое Date возвращает во что-то меньшее.

Если вам не нужна точность в миллисекундах, вы можете просто разделить на 1000. Может быть, вам даже не нужны секунды, разделите еще на 60.

Кроме того, значение привязано к 1 января 1970 года. Если вам нужны только более поздние даты, вы можете вычесть смещение, чтобы восстановить его в 2000 году.

Вся идея состоит в том, чтобы сделать различия в данных более значимыми численно (в процентном отношении).

0 голосов
/ 07 апреля 2010

Тип unix timestamp является целым числом, и вы читаете данные как двойное число.В зависимости от относительных размеров вы почти наверняка столкнетесь с проблемами.

Оставьте временные метки в виде целых чисел или , чтобы преобразовать время в нечто более подходящее вашей проблеме .

...