ML достаточно возможностей?
Я пытаюсь обучить случайный лес на наборе данных акселерометра. Я рассчитываю такие функции, как среднее значение, сд, корреляция между осями, площадь под кривой и другие. Я ML Нуб.
Я пытаюсь понять две вещи:
1. Если я разделю набор данных от одного человека на тестирование и тренировку, а также выполню прогноз RF, точность будет высокой (> 90%). Однако, если я обучу RF с данными от разных людей, а затем прогнозирую, точность будет низкой (< 50%). Зачем? Как мне отладить это? Не уверен, что я делаю не так.
- В приведенном выше примере, чтобы получить точность до 90%, сколько функций "достаточно"? Сколько данных "достаточно"?
Я могу предоставить больше деталей. Набор данных из 10 человек, большие файлы с помеченными данными. Я ограничил себя вышеупомянутыми функциями, чтобы избежать большого количества вычислений.
1 ответ
Скорее всего, ваш перебор классификатора, когда вы тренируете его только на 1 человеке, он плохо обобщает, он может просто "запомнить" набор данных с метками вместо того, чтобы фиксировать общие правила распределения: как каждая функция соотносится с другими / как они влияют на результат / и т.д. Может быть, вам нужно больше данных или больше функций.
Это не такой простой вопрос, это проблема обобщения, по этому поводу есть много теоретических исследований, например: теория Вапника – Червоненкиса https://en.wikipedia.org/wiki/Akaike_information_criterion. И даже со знанием таких теорий вы не сможете точно ответить на этот вопрос. Основной принцип большинства таких теорий - чем больше у вас данных, тем меньше вариативная модель, которую вы пытаетесь подогнать, и меньшим различием между точностью обучения и тестированием, которое вам требуется, - эти теории оценят вашу модель выше. Например, если вы не хотите минимизировать разницу между точностью на тестовом и тренировочном наборе (чтобы убедиться, что точность тестовых данных не упадет) - вам нужно увеличить объем данных, предоставить более значимые функции (по отношению к вашей модели), или используйте менее вариативную модель для подгонки. Если вас интересует более подробное объяснение теоретического аспекта, вы можете посмотреть лекции Caltech, начиная с этого CaltechX - CS1156x Обучение на основе данных.