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

如何在sklearn中使用x列表及时间序列多行DataFrame作为x调用fit(x,y)训练模型?

关于sklearn fit(x,y)的两个问题解答

一、如何使用列表作为输入x?

sklearn模型的fit(x,y)方法要求x是二维数组类结构(形状为[n_samples, n_features],即n个样本,每个样本对应n个特征)。直接传入一维列表会报错,因为模型会将其识别为「1个样本、n个特征」,而非「n个样本、1个特征」。

正确操作示例:

  • 单特征场景:把一维列表转为二维结构
    from sklearn.linear_model import LinearRegression
    
    # 错误:一维列表会被判定为1个样本、3个特征
    # x = [1, 2, 3]
    # 正确:二维列表,对应3个样本、1个特征
    x = [[1], [2], [3]]
    y = [2, 4, 6]
    
    model = LinearRegression()
    model.fit(x, y)
    
  • 多特征场景:每个子列表对应一个样本的所有特征
    # 2个样本,每个样本包含2个特征
    x = [[1, 2], [3, 4]]
    y = [5, 9]
    model.fit(x, y)
    

也可以用numpy.reshape快速转换一维列表为二维:

import numpy as np
x = [1,2,3]
x = np.array(x).reshape(-1, 1)  # 转为(3,1)的二维数组

二、用时间序列多行DataFrame作为x训练是否可行?怎么操作?

完全可行,但需要先把时间序列数据转换为监督学习格式——即把连续的多行历史数据作为一个样本的特征,对应下一个时刻的目标值y。

具体步骤:

  1. 确定时间窗口大小:比如用过去3行数据预测下一行,窗口大小设为3;
  2. 构造特征矩阵X和目标向量y:遍历DataFrame,每次截取连续的窗口行作为特征,下一行作为目标;
  3. 传入模型训练:确保X是二维结构(每个样本对应摊平后的窗口特征)。

代码示例:

假设我们有一个记录温度的时间序列DataFrame,要预测下一个时刻的温度:

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression

# 构造示例时间序列DataFrame
df = pd.DataFrame({
    'temp': [20, 22, 23, 25, 27, 26, 28]
})

window_size = 2  # 用过去2行数据预测下一行

X = []
y = []
# 遍历生成训练样本
for i in range(len(df) - window_size):
    # 截取窗口内的特征,摊平为一维数组(每个样本对应window_size个特征)
    window_features = df.iloc[i:i+window_size]['temp'].values.flatten()
    X.append(window_features)
    # 对应下一个时刻的目标值
    target = df.iloc[i+window_size]['temp']
    y.append(target)

# 转换为numpy数组(sklearn更适配数组格式)
X = np.array(X)
y = np.array(y)

# 训练模型
model = LinearRegression()
model.fit(X, y)

# 测试预测:用最后2行数据预测下一个温度
last_window = df.iloc[-window_size:]['temp'].values.flatten().reshape(1, -1)
predicted_temp = model.predict(last_window)
print(predicted_temp)

如果DataFrame有多列特征(比如temp、humidity),只需修改窗口特征的截取逻辑,自动包含所有列:

window_features = df.iloc[i:i+window_size].values.flatten()

这样每个样本的特征数就是window_size * 列数,符合sklearn对X的格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:40:28