我有一个看起来像这样的数据帧:
2015 2016 2017 2018 2019
Jan 10991273 15761628 20702648 28836397 32462658
Feb 11910590 18407640 21867727 29592821 34120748
Mar 14720817 22353179 28631090 37017871 41731600
Apr 14240928 22383817 28698805 36719286 40352427
May 13999937 22562954 30105567 38492879 42443240
Jun 14618367 23485559 31294015 40219835 42243535
Jul 16954514 22816656 31235203 39633588 41259052
Aug 16384802 22418011 30851292 39153646 38739977
Sep 17546431 22387746 30207602 37501028 37273751
Oct 19069836 24623265 34346016 42694615 0
Nov 15864435 21323086 30132954 34682955 0
Dec 14728914 18795856 26990426 33064396 0
从本质上讲,我试图预测这些零值。
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
lm = LinearRegression()
Z = df[['2015', '2016', '2017', '2018']]
lm.fit(Z , df['2019'])
y_predict = lm.predict(Z)
print(y_predict)
输出是这样的:
array([31915988.349427 , 42517368.34239061, 42188302.01643895,
40885793.12471981, 39423851.45561062, 43649973.20909937,
29415292.34136068, 28706985.92182099, 21561488.69575803,
24801192.93635751, -508990.40716472, 6069742.01418072])
该输出是否表示对这些值的预测?
我会说它没有。
与1月至9月的早期值不一致是一个不好的迹象。
Nov 的大负值表明有问题。这些数字代表什么? 负值在物理上可能吗?
将函数视为黑匣子是错误的。
我可以用不同的方式查看这些数据:
- 每月一次拟合,其中年份是输入值。
- 每年一次拟合,总共 12 个值。
- 以月、年为参数的 2D 曲面。
你在做什么? 您假设什么顺序合适?
您应该能够计算 SSE 并找出不同方案的拟合优度。
我敦促您在尝试拟合任何东西之前绘制数据并查看它。 更好地理解数据。