Reproducibility File: PSO-MLP Model for Intelligent Assessment of Student Learning 1. Updates - Provide full environment setup for replicating experiments. - Include command-line examples for preprocessing, training, evaluation, and visualization. - Incorporate support for multimodal physiological signal processing. 2. Environment (Python 3.9) We recommend using Anaconda to create a dedicated environment for this project: # Install Anaconda wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh bash Anaconda3-2022.05-Linux-x86_64.sh # Create and activate the environment conda create -n psomlp_env python=3.9 conda activate psomlp_env # Install dependencies conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 -c pytorch pip install numpy==1.23.5 pip install pandas==1.5.2 pip install scikit-learn==1.1.3 pip install matplotlib==3.6.2 pip install seaborn==0.12.1 pip install scipy==1.9.3 3. Dataset: DEAP Download the DEAP dataset from: https://paperswithcode.com/dataset/deap (Original DOI: 10.1109/T-AFFC.2011.15) Place extracted files under: `./data/deap/` 4. Preprocessing # Run preprocessing (EEG filtering, normalization, interpolation, segmentation) python preprocess.py \ --data_dir ./data/deap/ \ --output_dir ./data/processed/ \ --window_size 1 \ --normalize zscore \ --fill_missing linear \ --eeg_bandpass 4 45 5. Feature Extraction # Extract features for each modality (EEG, GSR, HR, facial) python extract_features.py \ --input_dir ./data/processed/ \ --output_dir ./features/ \ --modalities eeg gsr hr facial \ --segment_size 5 \ --overlap 0.5 6. GAN-Based Augmentation (Optional) # Generate balanced samples for underrepresented emotion classes python augment_gan.py \ --input_dir ./features/ \ --output_dir ./features_augmented/ \ --labels_file ./data/labels.csv 7. Model Training: PSO-MLP python train_pso_mlp.py \ --features_dir ./features_augmented/ \ --num_particles 30 \ --max_iterations 50 \ --hidden_layers 2 \ --dropout_rate 0.14 \ --batch_size 95 \ --activation relu \ --optimizer pso \ --save_model ./checkpoints/pso_mlp_model.pth 8. Evaluation python evaluate_model.py \ --model_path ./checkpoints/pso_mlp_model.pth \ --test_data ./features/test_set.npy \ --metrics accuracy precision recall f1 confusion_matrix 9. Visualization python visualize.py \ --metrics_file ./results/metrics.json \ --confusion_file ./results/confusion_matrix.npy 10. Notes - Label mapping: 0 = Exhausted, 1 = Negative, 2 = Active. - All preprocessing and training configs can be adjusted in `config.yaml`. - The PSO-MLP architecture used 14 input neurons, 2 hidden layers with ReLU, and was optimized using inertia weight ω = 0.5, acceleration constants c₁ = c₂ = 1. - The code supports reproducible runs using `random_seed` flag.