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

如何从已保存的ML模型中加载训练及测试集数据用于拼接

合并已保存模型的历史数据集与新数据集的可行方案

通常训练完成的ML模型文件(如.h5、.pkl格式)仅存储模型结构与权重,不会自动绑定训练/测试集数据——你直接调用模型的x_train等属性是无效的。要实现数据集合并,需先将历史数据集单独存储,再加载后与新数据拼接。

第一步:存储历史数据集(若未提前保存)

在训练原模型的环境中,把历史训练/测试集单独存为数据文件:

  • 用Pickle存储(适配数组、结构化数据):
import pickle

# 假设历史数据集变量为x_train_old、y_train_old、x_test_old、y_test_old
with open('historical_train.pkl', 'wb') as f:
    pickle.dump((x_train_old, y_train_old), f)
with open('historical_test.pkl', 'wb') as f:
    pickle.dump((x_test_old, y_test_old), f)
  • 用CSV存储(适配表格型数据):
import pandas as pd

# 若数据集为DataFrame格式
x_train_old.to_csv('x_train_old.csv', index=False)
y_train_old.to_csv('y_train_old.csv', index=False)
x_test_old.to_csv('x_test_old.csv', index=False)
y_test_old.to_csv('y_test_old.csv', index=False)

第二步:加载并合并数据集

加载历史数据

  • Pickle方式加载:
import pickle

with open('historical_train.pkl', 'rb') as f:
    x_train_old, y_train_old = pickle.load(f)
with open('historical_test.pkl', 'rb') as f:
    x_test_old, y_test_old = pickle.load(f)
  • CSV方式加载:
import pandas as pd

x_train_old = pd.read_csv('x_train_old.csv')
y_train_old = pd.read_csv('y_train_old.csv')
x_test_old = pd.read_csv('x_test_old.csv')
y_test_old = pd.read_csv('y_test_old.csv')

合并历史与新数据

假设下月新数据集变量为x_train_new、y_train_new、x_test_new、y_test_new,需保证新旧数据的特征维度、结构完全一致:

  • 数组/矩阵格式(如NumPy数组):
import numpy as np

x_train_combined = np.concatenate([x_train_old, x_train_new], axis=0)
y_train_combined = np.concatenate([y_train_old, y_train_new], axis=0)
x_test_combined = np.concatenate([x_test_old, x_test_new], axis=0)
y_test_combined = np.concatenate([y_test_old, y_test_new], axis=0)
  • DataFrame格式:
x_train_combined = pd.concat([x_train_old, x_train_new], axis=0, ignore_index=True)
y_train_combined = pd.concat([y_train_old, y_train_new], axis=0, ignore_index=True)
x_test_combined = pd.concat([x_test_old, x_test_new], axis=0, ignore_index=True)
y_test_combined = pd.concat([y_test_old, y_test_new], axis=0, ignore_index=True)

关键注意事项

  • 必须保证新旧数据的特征顺序、数据类型、缺失值处理规则完全一致,否则合并后模型训练会出现异常。
  • 若原模型使用了预处理管道(如Scikit-learn的Pipeline),需同时保存预处理组件,确保新数据的预处理逻辑与历史数据完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:10:43