Как провести исследовательский анализ данных, чтобы выбрать подходящий алгоритм машинного обучения

16

Мы изучаем машинное обучение с помощью машинного обучения: вероятностная перспектива (Кевин Мерфи). Хотя в тексте объясняется теоретическая основа каждого алгоритма, в нем редко говорится, в каком случае какой алгоритм лучше, а когда - нет, но не говорится, как определить, в каком случае я нахожусь.

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

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

РЕДАКТИРОВАТЬ: Хотя мой первоначальный вопрос о универсальном эмпирическом правиле, меня попросили предоставить больше информации о моей конкретной проблеме.

Данные: панель с каждой строкой, представляющей месяц страны (всего ~ 30 000 строк, охватывающих ~ 165 стран за ~ 15 лет).

Ответ: 5 бинарных переменных, представляющих интерес (т. Е. Произошли ли протест / переворот / кризис и т. Д. В этом месяце).

Особенности: ~ 400 переменных (смесь непрерывных, категориальных, двоичных), детализирующих набор характеристик двух предыдущих страновых месяцев (можно создать более длительное отставание). Мы используем только запаздывающую переменную, так как целью является прогноз.

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

Гейзенберг
источник

Ответы:

15

Это широкий вопрос без простого ответа. В КМУ я преподавал 3-месячный курс по этой теме. Он охватывал такие вопросы, как:

  1. Использование прогнозов для понимания корреляции между переменными и общей структурой распределения.
  2. Как построить регрессионную модель путем последовательного моделирования остатков.
  3. Определение того, когда добавлять члены нелинейного взаимодействия в линейную модель.
  4. Как сделать выбор между кнн против дерева решений и логистического классификатора. Я просмотрел несколько наборов данных UCI и показал, как вы можете определить, какой классификатор победит, прежде чем запускать их.

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

Том Минка
источник
Мне понадобится день или два, чтобы переварить эти полезные материалы, но пока я обращаю ваше внимание: почему у нас нет учебника / ресурса по этой теме? Разве это не важно, потому что всякий раз, когда кто-то участвует в проекте, он должен думать об этом вопросе?
Гейзенберг
1
Хороший вопрос (+1) и ответ (+1). @ Heisenberg: я согласен с Томом в том, что он не видел конкретного учебника по этой теме. Однако, в дополнение к его ресурсам, я бы предложил два онлайн-ресурса (несмотря на то, что они не фокусируются на приложениях по ОД): 1) раздел EDA Справочника по технической статистике NIST; 2) интересная статья профессора Эндрю Гельмана о EDA для сложных моделей.
Александр Блех
0

Есть некоторые вещи, которые вы можете проверить в своих данных.

1 - correlation between variables
2 - categorical variables or continuous variables?
3 - relation between number of samples and number of variables
4 - are the samples independent or is it a time series? 

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

Donbeo
источник
Не могли бы вы рассказать, как каждая из этих 4-х информации влияет на мой выбор алгоритма? Я только знаю, что 2 решит классификацию против регрессии. А как насчет других 3? (особенно № 4 - у меня есть данные панели из 165 стран за 10 лет)
Гейзенберг
Во-вторых, я думал о категориальных переменных в качестве входных данных. Окончательное решение по алгоритму зависит от проблемы, которую вы пытаетесь решить. Теперь есть способ узнать это раньше. Во 2 - может быть, дерево решений может помочь вам. В 3 вы должны быть осторожны с переоснащением. В 4-х вы должны решить, как оценивать свои результаты. Только если вы объясните конкретную проблему, мы можем помочь вам решить, какой алгоритм использовать.
Donbeo
Я отредактировал свой вопрос для более подробной информации о моей конкретной проблеме.
Гейзенберг