File size: 2,869 Bytes
2962055
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Configuration file for the pipeline

config = {
    # Paths for Import Data
    "accel_path": "/Users/anhducduong/Documents/GitHub/EmotionRecognitionPipeline/EmotionRecognitionPipeline/AccelerometerMeasurements_backup.csv",  # Path to the accelerometer data
    "reports_path": "/Users/anhducduong/Documents/GitHub/EmotionRecognitionPipeline/EmotionRecognitionPipeline/UserTestingSelfReports.csv",  # Path to the self-reports data
    #"combined_data_path": "Path or Name of File of Combined Data File",  # Path to the combined data
    #"features_data_path": "Path or Name of File of Features Data File",  # Path to the features data
    #"model_path": "Path or Name of Trained Model File",  # Path to the trained model

    # Label Configuration
    "label_columns": ["valence", "arousal"],  # Here you should input the emotion-labels that you are using
    "target_label": "arousal",  # This is the target label that you want to predict (Only one label can be selected)

    # Configuration for combined data
    "time_window": 3,  # Minutes before and after the self-report

    # Configuration for feature extraction
    "window_length": 60,  # Window length in seconds / 60
    "window_step_size": 20,  # Step size in seconds / 10%-50% of window_length / 20
    "data_frequency": 25,  # Data frequency in Hz
    "selected_domains": None,  # Default: Every domain / 'time_domain', 'spatial', 'frequency', 'statistical', 'wavelet' / multiple domains: ["time_domain", "frequency"] / order is not important
    "include_magnitude": True,  # Include magnitude-based features or not

    #Configuration for Low-pass filter
    "cutoff_frequency": 10,  # Cut-off frequency for the low-pass filter
    "order": 4,  # Order of the filter

    # Configuration for Scaling
    "scaler_type": "standard",  # Possible Scaler: 'standard' or 'minmax'

    # Configuration for PCA
    "apply_pca": False,  # Apply PCA or not
    "pca_variance": 0.95,  # PCA variance threshold

    # Configuration for model training
    "classifier": "xgboost",  # Default classifier ('xgboost', 'svm', 'randomforest')

    # Configuration for hyperparameter tuning
    "n_splits": 5, # Number of splits for cross-validation
    "n_iter": 30,   # Number of iterations for hyperparameter tuning
    "n_jobs": -1,   # Number of jobs for parallel processing
    "n_points": 1,  # Number of points to sample in the hyperparameter space

    # If users want to define custom param_space, they can specify it here
    "param_space": {
        "learning_rate": (0.05, 0.2), 
        "n_estimators": (200, 800),
        "max_depth": (4, 8),
        "min_child_weight": (1, 5),
        "subsample": (0.6, 0.9),
        "colsample_bytree": (0.6, 0.9),
        "gamma": (0, 5),
        "reg_alpha": (0, 5),
        "reg_lambda": (0, 5)
    },  # Set to {None} to use default inside the TrainModel class
}