Бывают случаи, когда необходимо разделить наборы данных для обучения и тестирования для целей обучения на основе предметов. Здесь субъектом может быть человек или любой предмет интереса. Например, вы хотите сделать многозначную классификацию нескольких классов сходного поведения для нескольких людей. На основе параметров ускорения ax, ay и az; вы хотели бы классифицировать прыжки, приседания и любые другие интересующие вас действия. Но загвоздка в том, что вы хотели бы разделить тестовые и обучающие данные, чтобы точки данных были неизвестны сети глубокого обучения. Таким образом, необходимо разделить точки данных на основе субъектов, чтобы каждый человек с уникальными наборами действий был неизвестен обученной модели для улучшения моделей.

Показана простая демонстрация, в которой метод split_test_train_by_subjects вычисляет уникальные темы из списка тем. Затем список субъектов перемешивается, а затем разделяется на наборы для обучения и тестирования на основе train_percent. Теперь мы хотим разделить X на X_train и X_test, y на Y_train и Y_test на основе этих train_subjects и test_subjects, что достигается с помощью простого метода np.where.