Выберите правильный алгоритм классификации. Линейный или нелинейный? [закрытый]

12
задан Bhargav Rao 16 August 2019 в 08:01
поделиться

2 ответа

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

Во-первых, чтобы сформулировать проблему, это больше, чем просто линейное против нелинейного. Если вы действительно хотите классифицировать эти данные, вам действительно нужно выбрать функцию ядра для классификатора, которая может быть линейной или нелинейной (гауссовской, полиномиальной, гиперболической и т. Д.). Кроме того, каждая функция ядра может принимать один или несколько параметров, которые необходимо установить. Определение оптимальной функции ядра и набора параметров для данной задачи классификации на самом деле не является решенной проблемой, есть только полезные эвристики, и если вы гуглите «выбор функции ядра» или «выбор ядра» function », вы получите множество исследовательских работ, в которых предлагаются и тестируются различные подходы.Несмотря на то, что существует множество подходов, один из самых простых и хорошо изученных - это градиентный спуск по параметрам - в основном вы пробуете метод ядра и набор параметров, тренируетесь на половине ваших точек данных и смотрите, как вы это делаете. Затем вы пробуете другой набор параметров и смотрите, как вы это делаете. Вы перемещаете параметры в направлении максимального повышения точности, пока не получите удовлетворительные результаты.

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

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

Редактировать: В этой исследовательской статье описывается алгоритм, который, похоже, должен уметь определять, насколько близок данный набор данных к линейной разделимости.

http://www2.ift.ulaval.ca/~mmarchand/publications/wcnn93aa.pdf

15
ответ дан 2 December 2019 в 05:03
поделиться

На самом деле это два вопроса в одном; -)

  • Выбор характеристик
  • Линейный или нет

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

В качестве примечания, хорошо , что у вас нет опыта в предметной области, который позволил бы вам направлять выбор функций и / или утверждать линейность пространства функций. Это удовольствие от интеллектуального анализа данных: вывести такую ​​информацию без априорной экспертизы. (Кстати, и хотя знание предметной области полезно для перепроверки результатов классификатора, слишком много априорного понимания может заставить вас упустить хорошие возможности для добычи полезных ископаемых). Без каких-либо таких априорных знаний вы вынуждены устанавливать надежные методики и тщательно проверять результаты.

Трудно дать конкретное руководство, отчасти потому, что многие детали упущены в вопросе, а также из-за того, что я в некоторой степени заблуждаюсь по этому поводу ;-). Тем не менее, я надеюсь, что следующий общий совет будет полезен

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

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

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

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

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

  • Научитесь использовать "дамп" информации, предоставляемой оптимизаторами SVM. Эти результаты предоставляют очень ценную информацию о том, что «думает» оптимизатор

  • . Помните, что то, что очень хорошо работало с данным набором данных в данном домене, может очень плохо работать с данными из другого домена ...

  • кофе хорош, а не слишком много. Когда все не удается, сделайте его ирландским; -)

15
ответ дан 2 December 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: