2 回答

TA貢獻1864條經驗 獲得超6個贊
您對時間序列使用了完全錯誤的方法。
讓我們看看線性回歸在做什么:
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_datetimef(x)= labellabel-prediction2.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

TA貢獻1777條經驗 獲得超3個贊
除非您提供產生這些預測值的測試集,否則我無法確定。
根據代碼,您正在擬合具有單個自變量的模型julian_datetime
來預測您的因變量label
。根據您的樣本數據,該julian_datetime
變量具有大量重復值。julian_datetime
如果您對測試集中的每個觀察值具有相同的值,我不會感到驚訝。這將導致相同的預測,因為每個輸入都是相同的。
如果是這種情況,并且您仍然不相信,請嘗試將一些觀察結果從您的訓練集中移動到具有不同julian_datetime
值的測試集中,以查看您是否收到不同的預測。您很可能會注意到對這些新觀察結果的不同預測。結果,您將看到您的生產線發生了變化。
更新
我相信這條線沒有改變有幾個原因:
我相信您的訓練集總共包含大約 140000 個觀察值,而您的測試集包含 25-100 個觀察值。此外,您的繪圖僅包含有關測試集的數據。因此,您的預測似乎沒有變化,因為您在一個非常小的窗口上繪制了一條線性回歸線。
如果時間對您的反應完全沒有影響,您的線性回歸線將再次變得相當平坦。
如果您仍想繼續構建線性回歸模型,我建議您執行以下操作:
確保你的測試集足夠大,可以注意到預測的變化,否則你會遇到同樣的問題。
嘗試在模型中包含 sin 和 cos 函數,以考慮可能的季節性
添加回答
舉報