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

使用Sklearn LinearRegression预测时间序列单值时遇类型错误求助

问题解决:Timestamp类型无法传入LinearRegression预测的错误

错误原因

LinearRegression模型只能处理数值型特征,直接传入Timestamp类型的时间索引时,模型尝试将其转换为浮点数失败,因此抛出TypeError。

修复方案

把时间索引转换为Unix时间戳(数值格式),训练和预测阶段统一使用这个数值型时间特征:

import pandas as pd
import numpy as np
import yfinance as yf
from sklearn.linear_model import LinearRegression
import datetime  # 补充导入datetime模块,原代码遗漏该依赖

nq = yf.download("NQ=F", period="60d", interval="30m")
nq.index = pd.to_datetime(nq.index)

# 将时间索引转为秒级Unix时间戳,得到数值型特征数组
X = np.array(nq.index.timestamp()).reshape(-1, 1)
y = np.array(nq['Close'])

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

lasttime = nq.tail(1).index.item()
newtime = lasttime + datetime.timedelta(minutes=30) 
# 把新时间同样转为秒级时间戳,匹配训练时的特征格式
newtime_ts = np.array([[newtime.timestamp()]])

# 执行预测
predicted_close = regr.predict(newtime_ts)
print(predicted_close)

关键改动说明

  • 用.timestamp()方法将Timestamp直接转换为秒级Unix时间戳,确保特征X是纯数值数组
  • 预测时,新生成的newtime也要转换成相同格式的时间戳,保证和训练数据的特征类型一致
  • 补充导入datetime模块,避免原代码中datetime.timedelta调用报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 10:59:54