zqhang / MTGFLOW

Official implmentation of AAAI'23 paper 'Detecting Multivariate Time Series Anomalies with Zero Known Label'.
MIT License
45 stars 10 forks source link

关于val_data与test_data #13

Open Shawn86CN opened 3 weeks ago

Shawn86CN commented 3 weeks ago

在研究您的代码之后,您在对数据进行预处理时使用 val_df = norm_feature.iloc[int(0.6len(data)):int(train_splitlen(data))],但是您定义时train_split =0.6,也就是说您并没有为验证数据集分配任何数据。在训练模型的时候您也并没有使用val_loader来对模型性能进行评估,而是直接使用test_loader来选择test_roc最高的模型作为最终的训练结果,这样的操作是合理的吗?不是应该使用val_loader来选择roc最高的模型,最终在test_loader 上进行验证吗?

syfalbert commented 3 weeks ago

在研究您的代码之后,您在对数据进行预处理时使用 val_df = norm_feature.iloc[int(0.6_len(data)):int(train_split_len(data))],但是您定义时train_split =0.6,也就是说您并没有为验证数据集分配任何数据。在训练模型的时候您也并没有使用val_loader来对模型性能进行评估,而是直接使用test_loader来选择test_roc最高的模型作为最终的训练结果,这样的操作是合理的吗?不是应该使用val_loader来选择roc最高的模型,最终在test_loader 上进行验证吗?

他的train_split =0.8,但是我也不理解:在训练模型的时候没有使用val_loader来对模型性能进行评估,而是直接使用test_loader来选择test_roc最高的模型作为最终的训练结果,请问你搞懂了吗

Shawn86CN commented 2 weeks ago

他的train_split =0.8,但是我不太明白:在训练模型的时候没有使用val_loader来对模型性能进行评估,而是直接使用test_loader来选择test_roc最高的模型作为最终的训练结果,请问你懂了吗

这样的操作应该是不严谨的,正常来说不能这么操作

zqhang commented 2 weeks ago

把本来就小的数据集分成训练集,验证集,测试集的话,会导致训练集和训练集里面其中之一异常样本很少,甚至没有。所以为了符合我们的setting,实验结果是选择在test dataset最好的结果。我们的benchmark也是按照这样测的。你也可以在更大的数据集上设置验证集。

---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2024年10月24日 17:13 | | 收件人 | @.> | | 抄送至 | @.***> | | 主题 | Re: [zqhang/MTGFLOW] 关于val_data与test_data (Issue #13) |

他的train_split =0.8,但是我不太明白:在训练模型的时候没有使用val_loader来对模型性能进行评估,而是直接使用test_loader来选择test_roc最高的模型作为最终的训练结果,请问你懂了吗

这样的操作应该是不严谨的,正常来说不能这么操作

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>