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

如何在Keras与Python环境下记录训练测试数据索引用于训练后分析

实现方案

1. 准备原始样本标识数组

先准备和原始输入数组ins长度完全一致的时间戳数组,每个位置的元素对应ins[i]的样本标识:

# 可根据实际场景从文件加载或自行生成,形状为 (100,),和ins的样本数对齐
timestamps = np.load('timestamps.npy')

2. 拆分数据集时同步拆分标识数组

sklearn的train_test_split支持传入多个同长度数组,会按照完全相同的随机规则拆分,保证样本、标签、标识的索引一一对应:

# 第一次拆分:拆分出测试集
ins_train, ins_test, outs_train, outs_test, timestamps_train, timestamps_test = train_test_split(
    ins, outs, timestamps, test_size=0.25, random_state=3
)
# 第二次拆分:拆分出验证集
ins_train, ins_val, outs_train, outs_val, timestamps_train, timestamps_val = train_test_split(
    ins_train, outs_train, timestamps_train, test_size=0.2, random_state=2
)

3. 训练流程无需修改

你现有的生成器、模型训练逻辑完全不用调整,训练过程不需要用到时间戳信息,生成器仅需要给模型投喂输入和标签即可,训练时的随机采样逻辑不会影响后续的样本对齐。

4. 标识存入结果字典

你后续调用model.predict时是按输入数组的顺序依次推理的,输出的预测结果索引和对应标识数组的索引完全一一对应,直接存入结果字典即可:

results['training_timestamps'] = timestamps_train
results['validation_timestamps'] = timestamps_val
results['testing_timestamps'] = timestamps_test

补充说明:如果后续需要用生成器做大数据集的推理(无法一次性加载全量数据进内存),可以修改生成器同时返回对应样本的索引/标识,推理时同步收集标识即可,当前训练场景不需要做额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 04:03:03