Example #1
0
def intra_patient_split(patient_id, train_frac=0.8, val_frac=0.1):
    p = Patient(patient_id)
    seizures = p.get_seizures()
    clips = p.get_seizure_clips()

    test_frac = 1.0 - train_frac - val_frac

    n_val_seizures = max(1, int(round(val_frac * len(seizures))))
    n_test_seizures = max(1, int(round(test_frac * len(seizures))))
    n_train_seizures = len(seizures) - n_val_seizures - n_test_seizures

    return (
        # Training clips
        clips[:n_train_seizures],

        # Validation clips
        clips[n_train_seizures:n_train_seizures + n_val_seizures],

        # Test clips
        clips[n_train_seizures + n_val_seizures:])