You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Simple time series linear regression处理销售数据运行异常求助

线性回归拟合日期字段失败解决方案

根因说明

scikit-learn的线性回归模型仅接受数值型特征作为输入,你当前使用的Date字段是字符串格式的日期,不属于可直接参与运算的数值类型,因此fit方法会直接报错。

修复步骤

你需要先将日期字段转换为代表时间顺序的数值特征,最常用的方式是转换为自起始日期起的天数差,代码示例如下:

import pandas as pd
from sklearn.linear_model import LinearRegression

# 第一步:将日期列转换为pandas datetime格式
df['Date'] = pd.to_datetime(df['Date'])
# 第二步:转换为自最小日期开始的天数差(数值型特征)
df['Date_num'] = (df['Date'] - df['Date'].min()).dt.days

# 拟合模型时使用转换后的数值特征
X = df[['Date_num']]
y = df['Sales']

model = LinearRegression()
model.fit(X, y)

# 预测时也需要对目标日期做相同转换
predict_date = pd.to_datetime('2021-1-1')
X_predict = (predict_date - df['Date'].min()).days
# 注意输入给predict的需要是二维数组格式
y_predict = model.predict([[X_predict]])

补充说明

  • 如果你需要加入年、月、日的周期性特征,可以单独提取df['Year'] = df['Date'].dt.year、df['Month'] = df['Date'].dt.month、df['Day'] = df['Date'].dt.day作为补充特征输入模型,拟合效果会更好
  • 不要直接对原始字符串格式的日期做任何数值运算,必须先通过pd.to_datetime完成格式转换

内容的提问来源于stack exchange,提问作者juge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:27:02