Какой из них первый: бенчмаркинг алгоритмов, выбор функций, настройка параметров?

11

При попытке сделать, например, классификацию, мой подход в настоящее время заключается в

  1. сначала попробуйте различные алгоритмы и сравните их
  2. выполнить выбор функции по лучшему алгоритму из 1 выше
  3. настроить параметры, используя выбранные функции и алгоритм

Однако я часто не могу убедить себя, что может быть лучший алгоритм, чем выбранный, если другие алгоритмы были оптимизированы с наилучшим параметром / наиболее подходящими характеристиками. В то же время поиск по всем функциям алгоритмов * параметров * занимает слишком много времени.

Любое предложение о правильном подходе / последовательности?

Рики
источник

Ответы:

8

Я предполагаю, что вы имеете в виду выбор функции как проектирование . Процесс, которым я обычно следую, и я вижу, что некоторые люди делают это

  1. Характеристика техники
  2. Попробуйте использовать некоторые алгоритмы, обычно с высокой производительностью, такие как RandomForest, Gradient Boosted Trees, Neutral Networks или SVM.

    2.1. Выполните простую настройку параметров, такую ​​как поиск по сетке для небольшого диапазона параметров.

Если результат шага 2 не является удовлетворительным, вернитесь к шагу 1, чтобы создать больше функций, или удалите избыточные функции и оставьте лучшие, люди обычно называют этот выбор функций . Если не хватает идей для новых функций, попробуйте больше алгоритмов.

Если результат в порядке или близок к желаемому, переходите к шагу 3

  1. Обширная настройка параметров

Причиной этого является то, что классификация - это все о разработке функций , и если вы не знаете какой-то невероятно мощный классификатор, такой как глубокое обучение, настроенный для конкретной задачи, такой как Computer Vision. Генерация хороших функций является ключом. Выбор классификатора важен, но не критичен. Все упомянутые выше классификаторы вполне сопоставимы с точки зрения производительности, и в большинстве случаев лучшим классификатором оказывается один из них.

Настройка параметров может повысить производительность, в некоторых случаях, довольно много. Но без хороших функций настройка не очень помогает. Имейте в виду, у вас всегда есть время для настройки параметров. Кроме того, нет смысла настраивать параметры, тогда вы обнаружите новую функцию и переделаете все это.

Ту Н.
источник
2

Эй, я только что увидел твой вопрос. ПОЛНОСТЬЮ НЕПРАВИЛЬНО сначала делать выбор функции, а затем настраивать модель с помощью перекрестной проверки. В элементах статистического обучения и в этом блоге четко указано, что: метод CV беспристрастен, только если все построение вашей модели выполняется внутри цикла CV. Так что делайте выбор функций внутри цикла CV для настройки параметров. Это можно легко сделать с помощью оболочки фильтра в пакете MLR в R.

Дхрув Махаджан
источник
1

Я уже ответил на аналогичный вопрос здесь . Процесс будет:

  • Преобразование и сокращение: включает процессы, такие как преобразования, среднее и срединное масштабирование и т. Д.
  • Выбор функции: это можно сделать разными способами, такими как выбор порога, выбор подмножества и т. Д.
  • Разработка прогнозирующей модели. Разработайте прогнозирующую модель на основе данных обучения в зависимости от имеющихся у вас функций.
  • Перекрестная проверка и настройка параметров:
  • Окончательный прогноз, проверка

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

Dawny33
источник
0

Если вы готовы потратить время на изучение работы нового инструмента, вы можете попробовать autosklearn. Он делает все, что нужно для построения конвейера ML для вас. Предварительная обработка, выбор, построение и настройка ансамбля модели путем перекрестной проверки. В зависимости от количества данных, которые у вас есть, это может быть, а может и не быть более быстрым способом правильного прогноза. Но это, безусловно, многообещающий.

Диего
источник