Когда я открываю машинное обучение, я вижу разные интересные методы, такие как:
- автоматически настраивать алгоритмы с помощью таких методов, как
grid search
, - получить более точные результаты за счет комбинации различных алгоритмов одного и того же «типа», это
boosting
, - получить более точные результаты за счет сочетания различных алгоритмов (но не тот же самый тип алгоритмов), это
stacking
, - и, вероятно, многое другое мне еще предстоит выяснить ...
Мой вопрос заключается в следующем: есть все эти части. Но возможно ли соединить их вместе, чтобы создать алгоритм, который будет принимать в качестве входных данных очищенные данные и выводить хорошие результаты, используя лучшие из всех методов? (Конечно, вероятно, он будет менее эффективен, чем профессиональный ученый, но он будет лучше меня!) Если да, у вас есть примеры кодов или вы знакомы с фреймворками, которые могут это сделать?
РЕДАКТИРОВАТЬ: После некоторых ответов, кажется, что некоторое сужение должно быть сделано. Давайте возьмем пример, у нас есть один столбец с категориальными данными, давайте назовем его, y
и мы хотим предсказать его из числовых данных, X
которые являются либо фиктивными, либо реальными числовыми данными (высота, температура). Мы предполагаем, что очистка была сделана ранее. Существуют ли алгоритмы, которые могут принимать такие данные и выводить прогноз? (путем тестирования нескольких алгоритмов, их настройки, усиления и т. д.) Если да, то эффективен ли он в вычислительном отношении (выполняются ли вычисления в разумные сроки, если сравнивать с обычным алгоритмом), и есть ли у вас пример кода?
источник
auto.arima
(изforecast
библиотеки) можно лучше, чем люди, - несколько раз упоминал Роб Хиндман в своих выступлениях. Таким образом, есть области, где некоторые виды «автоматического обучения» применяются с успехом.Ответы:
Если вы заранее знаете, какие данные вы будете вводить («это ежемесячные продажи CPG с ценами и маркерами продвижения, а мне нужен точечный прогноз»), так что вы можете заранее настроить настройки, что, вероятно, будет возможно и уже сделано, см. различные «экспертные системы» для определенных конкретных задач.
Если вы ищете что-то, что может взять любые данные и сделать с ними «что-то полезное» («ах, здесь я должен распознавать почерк и выводить почтовые индексы, и там я должен сделать обнаружение мошенничества, и этот входной файл, очевидно, это задача кредитного скоринга "), нет, я не думаю, что это произойдет в течение длительного времени.
Извините за основанный на мнении ответ на вопрос, который вполне может быть закрыт как вопрос, основанный на мнении.
РЕДАКТИРОВАТЬ, чтобы ответить на отредактированный вопрос:
Это похоже на то, что Случайные Леса на самом деле довольно хороши. С другой стороны, алгоритм «общего назначения», такой как RF, вероятно, никогда не превзойдет алгоритм, который был настроен на определенный тип известный заранее, например, рукописные цифры или риски кредитного дефолта.Y
источник
То, что вы описываете, уже существует в некоторой степени, например, в AutoWEKA , и активно исследуется (например, такие проблемы, как AutoML от Chalearn ).
Обычно это рассматривается в подполе оптимизации гиперпараметров. Пакеты программного обеспечения, такие как Optunity , Hyperopt и ParamILS, могут использоваться для автоматической оптимизации гиперпараметров для данного подхода и выбора того, какой подход окажется наилучшим. Тем не менее, такие проблемы оптимизации не являются тривиальными и обычно требуется много времени, чтобы автоматически получить лучшую модель (или близкую к ней).
Пример использования Optunity для автоматического определения лучшего алгоритма обучения и оптимизации его гиперпараметров можно найти по адресу http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html.
источник
Достижения в области гиперпараметрической настройки и ансамблевых моделей отбирают много «искусства» из построения моделей. Тем не менее, есть два важных аспекта построения моделей, с которыми не справляются настройка гиперпараметров и ансамбли, и они не позволят вам найти наилучшую модель.
Во-первых, определенные типы алгоритмов лучше подходят для моделирования определенных типов данных. Например, если между вашими переменными есть взаимодействия, аддитивная модель не найдет их, а дерево решений найдет. Знание того, как модели ведут себя в разных наборах данных, и выбор правильного набора данных может потребовать знаний о предметной области, чтобы найти лучший алгоритм моделирования.
Во-вторых, разработка и извлечение функций - это настоящее «искусство» построения моделей. Ваш вопрос предполагает, что набор данных уже подготовлен. Но вы не должны предполагать, что набор данных является наилучшим представлением того, что вы пытаетесь смоделировать. Это всегда и открытый вопрос. Во многих случаях, когда набор данных является сложным, вы можете разрабатывать функции в течение всего дня, но вы рискуете добавить все больше шума в алгоритм. Чтобы знать, какие функции добавить, вы должны знать, какие функции имеют смысл с точки зрения статистики, а какие - с точки зрения эксперта в области.
По этим двум причинам я не к выводу , что нет, вы не сможете найти алгоритм , который находит наилучшую возможную автоматически модель. По этой же причине я скептически отношусь к инструментам, предлагаемым поставщиками программного обеспечения, которые заменят потребность в специалистах по данным.
Однако, если вы сужаете свои амбиции, чтобы найти лучшую модель из фиксированного набора моделей с оптимальными гиперпараметрами, где «наилучшее» определяется как самая высокая прогностическая точность в обучающем наборе, тогда да, это возможно.
Проверьте
caret
пакет вR
качестве примера того, как автоматически настраивать модели.caret
использует поиск по сетке, который имеет недостатки, и он строит только одну модель за раз. Тем не менее, есть функции для сравнения моделей и удобные обертки для длинного списка моделей из разныхR
пакетов.источник
Зависит от того, кого вы спрашиваете.
Недавно я услышал лекцию Скотта Голдера в Context Relevant . Их продукт, по сути, является роботом выбора функций и моделей. Базовая базовая модель - это логистическая регрессия, но система в основном использует машинное обучение, чтобы определить правильную комбинацию выбора признаков, уменьшения размеров, регуляризации и т. Д. Для создания точных прогнозов. Это был очень впечатляющий разговор, и все детали очень запатентованы. Очевидно, их клиентами являются крупные финансовые компании, и система может обрабатывать произвольно массивные наборы данных.
По крайней мере, несколько человек, кажется, думают, что автоматизированная наука о данных уже здесь, по крайней мере, для определенных приложений. И некоторые из этих людей (клиенты Context Relevant), очевидно, платят через нос за доступ к нему.
источник
Нет, это не сон. Мы внедрили это (комбинация всех техник, которые вы упомянули, включая сложенные ансамбли) в библиотеке машинного обучения H2O . Вы можете прочитать больше об этом и найти примеры кода на R и Python здесь .
источник