[英]Sklearn polynomial regression flat with datetime x vales
即使使用 10 度回归器,我也会得到一个平坦的回归。 但是,如果我将日期值更改为数字,那么回归是否有效? 有人知道为什么吗?
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
from sklearn.linear_model import LinearRegression
from scipy.optimize import curve_fit
## RESHAPE DATA ##
X = transformed_data.ds.values.reshape(-1, 1)
y = transformed_data.y
# X = data.fecha.dt.day.values.reshape(-1, 1)
## PLOT ##
fig, ax = plt.subplots(figsize=(15,8))
ax.plot(X, y, 'o', label="data")
for i in (range(1, 10)):
polyreg = make_pipeline(PolynomialFeatures(i), LinearRegression())
polyreg.fit(X, y)
mse = round(np.mean((y - polyreg.predict(X))**2))
mae = round(np.mean(abs(y - polyreg.predict(X))))
ax.plot(X, polyreg.predict(X), label='Degree: ' + str(i) + ' MSE: ' + f'{mse:,}' +' MAE: ' + f'{mae:,}')
Datetime Data
ds y
0 2019-01-10 3658.0
1 2019-01-11 2952.0
2 2019-01-12 2855.0
3 2019-01-13 3904.0
Numeric Data
ds y
0 10 3658.0
1 11 2952.0
2 12 2855.0
3 13 3904.0
线性回归意味着将数值与计算的系数相关联。 接下来发生的事情是这些值乘以系数,这反过来给你一个 output 用于预测。
但是,在您的情况下,其中一个变量是日期,如上所述,回归 model 不知道如何处理它。 正如您所注意到的,您需要将它们转换为数字数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.