Линейные регрессии и даты Java
-
25-09-2019 - |
Вопрос
Я пытаюсь найти линейную линию тренда для набора данных. Набор содержит пары дат (X значений x) и оценки (значения Y). Я использую версию Этот код в качестве основы моего алгоритма.
Результаты, которые я получаю, выключены на несколько порядков. Я предполагаю, что есть некоторая проблема с ошибкой или переполнением раунда, потому что я использую метод получения даты, который дает вам огромное количество миллисекунд. У кого-нибудь есть предложение о том, как минимизировать ошибки и вычислять правильные результаты?
Решение
Возможно, это помогает преобразовать длительное значение, которое дата дата возвращается во что-то меньшее.
Если вам не нуждается в миллисекундной точности, вы можете просто разделить на 1000. Может быть, вам даже не нуждаются в секундах, разделите еще на 60.
Кроме того, стоимость закреплена в январе, 1 января 1970 года. Если вам нужно только более последние даты, вы можете вычесть компенсирование, чтобы восстановить его в 2000 году.
Вся идея состоит в том, чтобы сделать различия в данных более значимыми численно (процент-мудрый).
Другие советы
Тип Timestamp Unix это целое число, и вы читаете данные как двойную. В зависимости от относительных размеров вы почти обязаны попасть в беду.
Держите временные метки как целые числа или преобразуйте время в что-то более подходящее для вашей проблемы.