MAZiqing / FEDformer

MIT License
641 stars 122 forks source link

How to train, test, and forecast my own datasets? #45

Closed TungyuYoung closed 1 year ago

TungyuYoung commented 1 year ago

Dear Ma, Thanks for your job and open source code.

Here is a question I would like to ask you in all honesty. My own datasets do not contain a 'Date' column because it is a long time data sampled at a certain sample rate (sr). Instead, it may only last a few tens of minutes, but there are actually minutes 60 sr of data in each dataset. How should I apply my personal data set to FedFormer?

I would be grateful if you could answer my questions.

tianzhou2011 commented 1 year ago

you have to write your own dataloader. A pseudo Date column can be built to fit your case which can be a count list of 1 to n. Actually we just use Date to do the train,valid.,test split

TungyuYoung commented 1 year ago

you have to write your own dataloader. A pseudo Date column can be built to fit your case which can be a count list of 1 to n. Actually we just use Date to do the train,valid.,test split

我想咨询您一个问题就是,如何将FedFormer应用到其他数据集上面。我将要使用的数据集是刀具寿命预测数据集。该数据集的目的主要是通过5个传感器记录的数据进行预测刀具的磨损,即刀具进行铣削操作,每隔一段时间(几分钟)记录一次刀刃的磨损状态,同时会记录这段时间传感器的数据。我的问题主要在于:1、我的数据集并没有Date列,如您所说,Date列可以使用1~n的假时间序列作为输入。而剩下的操作是否可以不考虑Date列,而是将那5个传感器的数据作为输入呢?

此外,该数据集是记录了多把刀具的磨损过程。虚心地请教您,可以实现其中几把刀具的数据作为训练集和验证集,剩下的一个测试集吗?然后如果可以的话实现的思路是怎样的呢?

希望可以得到您的解答,万分感谢!

tianzhou2011 commented 1 year ago

可以不考虑Date列,你可以仔细看看代码,fedformer 模型的input 是不包含Date列的; 如果你不需要time embedding,时间就只是用来做split用的。 应该可以用其中几把刀的,你这些刀应该是统一制式吧,不会款式大小不同这种吧......要统一制式的话你当成多个采集的样本序列做dataloader就好。 但寿命预测有点复杂,你这个不是个标准的时序预测问题,是个状态预测问题,我没做过类似的项目,不太确定效果会不会好,你最好搜搜文献,别人做这种状态预测任务用的什么算法........

On Mon, Mar 20, 2023 at 5:07 PM TungYu Yeung @.***> wrote:

you have to write your own dataloader. A pseudo Date column can be built to fit your case which can be a count list of 1 to n. Actually we just use Date to do the train,valid.,test split

我想咨询您一个问题就是,如何将FedFormer应用到其他数据集上面。我将要使用的数据集是刀具寿命预测数据集。该数据集的目的主要是通过5个传感器记录的数据进行预测刀具的磨损,即刀具进行铣削操作,每隔一段时间(几分钟)记录一次刀刃的磨损状态,同时会记录这段时间传感器的数据。我的问题主要在于:1、我的数据集并没有Date列,如您所说,Date列可以使用1~n的假时间序列作为输入。而剩下的操作是否可以不考虑Date列,而是将那5个传感器的数据作为输入呢?

此外,该数据集是记录了多把刀具的磨损过程。虚心地请教您,可以实现其中几把刀具的数据作为训练集和验证集,剩下的一个测试集吗?然后如果可以的话实现的思路是怎样的呢?

希望可以得到您的解答,万分感谢!

— Reply to this email directly, view it on GitHub https://github.com/MAZiqing/FEDformer/issues/45#issuecomment-1475859899, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3JGO6THJ6MZREKRQN5BN3W5AM4DANCNFSM6AAAAAAV3RAVUM . You are receiving this because you commented.Message ID: @.***>

TungyuYoung commented 1 year ago

可以不考虑Date列,你可以仔细看看代码,fedformer 模型的input 是不包含Date列的; 如果你不需要time embedding,时间就只是用来做split用的。 应该可以用其中几把刀的,你这些刀应该是统一制式吧,不会款式大小不同这种吧......要统一制式的话你当成多个采集的样本序列做dataloader就好。 但寿命预测有点复杂,你这个不是个标准的时序预测问题,是个状态预测问题,我没做过类似的项目,不太确定效果会不会好,你最好搜搜文献,别人做这种状态预测任务用的什么算法........ On Mon, Mar 20, 2023 at 5:07 PM TungYu Yeung @.> wrote: you have to write your own dataloader. A pseudo Date column can be built to fit your case which can be a count list of 1 to n. Actually we just use Date to do the train,valid.,test split 我想咨询您一个问题就是,如何将FedFormer应用到其他数据集上面。我将要使用的数据集是刀具寿命预测数据集。该数据集的目的主要是通过5个传感器记录的数据进行预测刀具的磨损,即刀具进行铣削操作,每隔一段时间(几分钟)记录一次刀刃的磨损状态,同时会记录这段时间传感器的数据。我的问题主要在于:1、我的数据集并没有Date列,如您所说,Date列可以使用1~n的假时间序列作为输入。而剩下的操作是否可以不考虑Date列,而是将那5个传感器的数据作为输入呢? 此外,该数据集是记录了多把刀具的磨损过程。虚心地请教您,可以实现其中几把刀具的数据作为训练集和验证集,剩下的一个测试集吗?然后如果可以的话实现的思路是怎样的呢? 希望可以得到您的解答,万分感谢! — Reply to this email directly, view it on GitHub <#45 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3JGO6THJ6MZREKRQN5BN3W5AM4DANCNFSM6AAAAAAV3RAVUM . You are receiving this because you commented.Message ID: @.>

感谢您的耐心解答!至于寿命预测是否适用,我有关注到一篇工作是使用Informer encoder + GRU来做的,而且效果表现很好。所以我想FedFormer应该也可以满足这个需要。

我们的刀具都是统一制式、统一加工条件进行数据采集的。如您所说,我是否需要这样:假设有a、b、c三把刀的数据,我将a和b的数据合并成一个文件进行训练和验证,再单独用c来单独做测试可以吗?

再次衷心感谢您!

tianzhou2011 commented 1 year ago

当然是可以的....抱歉之前没注意到你又回复。不过最好多一点,不知道刀的数据波动性大不大,你用20把刀做训练用5把刀做测试这种会更准一点。