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

Python实现Simple Linear Regression时日期特征输入触发ValueError问题问询

问题产生原因

scikit-learn的LinearRegression模型仅支持数值类型的特征输入,你当前使用的Date列是字符串格式的日期数据,无法直接参与线性回归的数值计算,因此拟合模型时触发了类型转换错误。后续预测时输入的['2021-1-1']同样是字符串格式,也会触发同类错误。

解决方案

核心思路是把日期格式数据转换为可计算的数值特征,最常用的方式是将日期转换为距离训练集最早日期的天数,具体操作如下:

  • 先把数据集的Date列转换为pandas datetime类型,再衍生数值类型的天数特征
  • 预测时,需要把待预测的日期也做相同规则的数值转换后再输入模型

修正后的完整代码示例:

import pandas as pd
from sklearn.linear_model import LinearRegression

# 处理日期特征
df['Date'] = pd.to_datetime(df['Date'])
# 衍生距离最早日期的天数作为数值特征
df['days_since_start'] = (df['Date'] - df['Date'].min()).dt.days

X = df[['days_since_start']] 
y = df['ACP Cleaning'] 

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

# 预测前先转换待预测日期为相同规则的数值
predict_date = pd.to_datetime('2021-1-1')
X_predict = (predict_date - df['Date'].min()).days
# 转换为模型要求的二维数组格式
X_predict = [[X_predict]]
y_predict = model.predict(X_predict)

内容的提问来源于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 10:03:06