Вы используете совершенно неправильный подход для временных рядов.
Давайте посмотрим, что делает линейная регрессия:
julian_datetime label
0 2.452951e+06 6.696136
1 2.452951e+06 -5.293884
2 2.452951e+06 5.679681
3 2.452951e+06 4.411278
4 2.452951e+06 5.837476
Так что в основном он найдет функцию до f(x) = a*x +b
и ваши x= julian_datetime
и f(x)= label
. И он минимизирует потери от label-prediction
, поэтому проблема заключается в том, что для всех чисел 2.45,...,2.45
он найдет другое число. Но во временных сериях вы должны работать с потоком данных! В настоящее время время вообще не включается.
Один из примеров, чтобы сделать это для временных рядов (что не является лучшим подходом), - добавить все предыдущие 2 значения в качестве функции, чтобы он выглядел например:
julian_datetime julian_datetime-1 julian_datetime-2 label
0 2.452951e+06 6.696136
1 2.452951e+06 2.452951e+06 -5.293884
2 2.452951e+06 2.452951e+06 2.452951e+06 5.679681
3 2.452951e+06 2.452951e+06 2.452951e+06 4.411278
кстати, почему юлианское время и дата всегда имеют одно и то же значение? Ах, это еще хуже! Вы должны использовать столбец метки в качестве предыдущего значения, чтобы он выглядел следующим образом:
y y-1 y-2
0 6.696136
1 -5.293884 6.696136
2 5.679681 -5.293884 6.696136
3
, тогда ваше трианирование будет y-1, y-2
, а ваш прогноз y