Какой алгоритм машинного обучения будет лучшим в этом сценарии?

ОБНОВЛЕНИЕ - Краткая версия

Прочитав некоторые ответы и комментарии, я думаю, что смогу лучше резюмировать свой вопрос. См. Подробный пример ниже.

Я ищу алгоритм машинного обучения, который может:

  • генерировать комбинации нескольких различных переменных,
  • учиться на непрерывной обратной связи человека, классифицирующей каждую комбинацию как «хорошую» или «плохую», и повышать ее точность в будущем.
  • относительно хорошо работают с небольшими наборами данных обратной связи (обучения)
  • взвешивают недавно предоставленные данные обратной связи (обучения) - другими словами, старые данные обратной связи должны со временем стать менее влиятельными по сравнению с новыми данными обратной связи

Пример сценария

Допустим, я пытаюсь создать алгоритм, который будет генерировать расписание упражнений. Я дам ему определенные ограничения (я могу заниматься только 45 минут в день, не могу тренироваться по четвергам и т. Д.). Затем я хочу, чтобы он составлял расписание тренировок на каждый день недели.

Затем я хочу иметь возможность сказать алгоритму, что мне не нравится часть созданного им расписания (возможно, мне не нравится бегать в тот же день, что и тренировка пресса). Единственный вход, который я даю алгоритму, - это то, что одно из упражнений для данного дня «плохое» (я отменяю раздел ab или бег, либо одно из них).

Но я не говорю , почему это плохо, только то, что это не работает по какой-то причине. Это может быть одна из миллиона различных причин, и, возможно, я отметил, что это «плохо» после упражнения, и я даже не полностью осознаю, почему оно не прошло, просто я этого не чувствовал.

Кроме того, алгоритм может предполагать, что любые расписания упражнений, которые я не помечаю как «плохие», по крайней мере «в порядке».

То, что я ищу ...

Я ищу алгоритм (я полагаю, машинное обучение), который будет учитывать эту обратную связь и со временем тренироваться, чтобы попытаться угадать, какие тренировки мне понравятся. Скорее всего, он будет работать с относительно небольшими наборами данных (я не тренируюсь тысячи раз в неделю), и я не могу получать данные от других людей (так что какой-то механизм рекомендаций в стиле Netflix отсутствует).

Я думаю, что это подпадает под проблему бинарной классификации (либо предлагаемый график тренировок «по крайней мере нормальный», либо «плохой») , но я не уверен, какой подход был бы лучшим из алгоритмическая точка зрения.

Я могу (надеюсь) разобраться в деталях кодирования и алгоритма самостоятельно, но мне нужно руководство или совет, с какого алгоритма начать!

6
задан Dave W. 24 September 2011 в 18:36
поделиться