Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Excuse me. I need your help regarding data partitioning #21

Open
YuzRainy opened this issue Jan 16, 2024 · 6 comments
Open

Excuse me. I need your help regarding data partitioning #21

YuzRainy opened this issue Jan 16, 2024 · 6 comments

Comments

@YuzRainy
Copy link

YuzRainy commented Jan 16, 2024

Hi, Uttaran
I have some question for your paper and code.

  1. In your paper, training set:validation set:test set=7:2:1
    But actually, in the open code, it is Training:Test = 9:1. which one should I use?

  2. Your paper describes that the addition of 29-dim affective features will give a great improvement in the classification accuracy, but when I run your code, the experimental results are instead reduced with a great overfitting, what is the reason for this?

Thank you! : )

@UttaranB127
Copy link
Owner

Hi, we used some part of the training data (90% of the total data) for validation, that's why the reported split is 7:2:1. The overfitting problem may go away if you train with 70% of the total data. Otherwise, try training for fewer epochs.

@YuzRainy
Copy link
Author

YuzRainy commented Jan 17, 2024

Thanks for your kind reply! I see in the load_data( ), you split the total data into training data (90% of the total data) and testing data(10% of the total data), but it doesn't seem to split the training data (90% of the total data) again during training.(in processor.py ). The code looks like use testing data(10% of the total data) for validation during training.

To better express what I mean, I have excerpted some STEP code below, please take a look at it.

load_data( )

data_train, data_test, labels_train, labels_test = train_test_split(data, labels, test_size=0.1)

processor.py

    def  train(self):         
       # training
        self.per_train()
        # evaluation
        if (epoch % self.args.eval_interval == 0) or (epoch + 1 == self.args.num_epoch):
            self.per_test()
    def per_train(self):
        loader = self.data_loader['train']
    def per_test(self, evaluation=True):
        self.model.eval()
        loader = self.data_loader['test']

@UttaranB127
Copy link
Owner

Yes, apologies. There might be some mismatches in the uploaded version of the code as we had experimented with multiple variants after the original submission. But the code has been out of maintenance since the last 3 years. Thanks for discovering this issue, I will try to update the codebase when I get a chance. Meanwhile, please use a 7:2:1 split for your experiments as it says in the paper.

@YuzRainy
Copy link
Author

YuzRainy commented Jan 19, 2024

Ohhh, no wonder. I think it's probably because the version wasn't updated, so when I experimented in STEP, I used 7:2:1 and got an accuracy of about 72%(the experimental setup was the same as described in the paper), which is 6-8% lower than in the paper, I hypothesize that's because the emotion-gait is incomplete.
Looking forward to your update as I need the latest version for my graduation requirements.
Thanks a lot. Have a good day~

@UttaranB127
Copy link
Owner

Sure, but please do not wait for my update if the task is urgent for you. Please go ahead with the necessary changes at your end.

@YuzRainy
Copy link
Author

ahaha, got it.😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants