В статье рассматриваются варианты адаптации следующих распространенных алгоритмов и их преимущества и недостатки!
В мире существует так много алгоритмов машинного обучения, в области классификации, регрессии, группировки, рекомендаций, распознавания изображений и т. д., что найти подходящий алгоритм не так просто, поэтому в практических приложениях мы обычно экспериментируем с методом инспирированного обучения.
Обычно мы начинаем с общепринятых алгоритмов, таких как SVM, GBDT, Adaboost.
Если вы заботитесь о точности, то лучший способ - это тестировать алгоритмы по отдельности посредством кросс-валидации, сравнивать их, затем корректировать параметры, чтобы убедиться, что каждый алгоритм достигает оптимального, и в конце концов выбрать лучший.
Но если вы просто ищете алгоритм, который достаточно хорош, чтобы решить вашу проблему, или здесь есть несколько советов, которые вы можете использовать, ниже мы рассмотрим плюсы и минусы каждого алгоритма, чтобы сделать его более легким для вас.
В статистике, хорошая или плохая модель измеряется в зависимости от отклонений и дифференциаций, так что давайте сначала распространим эти отклонения и дифференциации:
Девиация: описывает расстояние между ожидаемым значениями прогноза (оценка) и реальными значениями Y. Чем больше отклонение, тем больше отклонение от реальных данных.
Дифференциальность: описывает диапазон изменений прогнозного значения P, степень дифференциальности, дифференциальность прогнозного значения, то есть расстояние от его ожидаемого значения E. Чем больше дифференциальность, тем более рассеянно распределение данных.
Истинная ошибка модели - это сумма обоих, как показано на рисунке ниже:
Если это небольшой набор тренировок, то классификаторы с высоким/низким отклонением (например, простой Байес NB) имеют больше преимуществ, чем классификаторы с низким/высоким отклонением (например, KNN), поскольку последний будет слишком подходящим.
Однако, по мере роста вашего набора тренингов, модель становится более предсказуемой для исходных данных, а отклонения уменьшаются, когда классификаторы с низким/высоким отклонением постепенно проявляют свои преимущества (поскольку они имеют более низкую приблизительную погрешность), когда классификаторы с высоким отклонением уже недостаточны для предоставления точных моделей.
Конечно, вы также можете подумать, что это разница между генерирующей моделью (NB) и модели определения (KNN).
Следующее сообщается самостоятельно:
Во-первых, предположим, что вы знаете, как связаны тренировочные и тестовые наборы. Проще говоря, мы изучаем модель на тренировочных наборах, а затем получаем тестовые наборы и используем их.
Но часто мы можем просто предположить, что тестовые и тренировочные наборы соответствуют одному и тому же распределению данных, но не получаем реальных тестовых данных.
Поскольку количество образцов обучения очень мало (или, по крайней мере, недостаточно), то модель, полученная с помощью набора обучения, не всегда является действительно правильной. Даже если набор обучения имеет 100%-ную точность, это не означает, что он изображает истинное распределение данных.
Кроме того, в практике тренировочные образцы часто имеют определенную ошибку в шуме, поэтому слишком высокое стремление к совершенству на тренировочных наборах приводит к тому, что модель принимает ошибки в тренировочных наборах как истинные характеристики распределения данных, что приводит к ошибочным оценкам распределения данных.
Таким образом, на реальных тестовых наборах ошибка является полной ошибкой ("это явление называется соответствием"). Но также нельзя использовать слишком простую модель, иначе модель будет недостаточной для изображения распределения данных при более сложном распределении данных ("отражает высокий уровень ошибок даже на тренировочных наборах, что является недостаточным соответствием").
Сверхсоответствие указывает на то, что используемая модель более сложная, чем реальное распределение данных, в то время как несоответствие указывает на то, что используемая модель проще, чем реальное распределение данных.
В рамках статистического обучения, когда люди рисуют сложность модели, есть такая точка зрения, что Error = Bias + Variance. Здесь Error, вероятно, можно понять как погрешность прогнозирования модели, состоит из двух частей, одна из которых представляет собой неточную часть оценки ("Bias"), вызванную слишком простой моделью, а другая - большим пространством изменений и неопределенностью ("Variance"), вызванной слишком сложной моделью.
Таким образом, это позволяет легко проанализировать простой Байес. Он просто предположил, что данные не связаны, и является серьезно упрощенной моделью. Таким образом, для такой простой модели большинство случаев Bias части больше, чем Variance части, то есть высокая отклонение и низкая отклонение.
На практике, чтобы сделать ошибку как можно меньше, мы должны сбалансировать соотношение Bias и Variance при выборе модели, то есть сбалансировать over-fitting и under-fitting.
Отношения между отклонениями и различиями и сложностью модели проясняются на следующей схеме:
Когда сложность модели увеличивается, отклонения постепенно уменьшаются, а отклонения постепенно увеличиваются.
Простые Байесы относятся к генерирующим моделям (о генерирующих моделях и детерминирующих моделях, в основном, или к тому, требуют ли они совместного распределения), очень простые, вы просто делаете кучу подсчетов.
Если поставить предположение о условной независимости (что является более строгим условием), то скорость свертывания простых Бейесовских классификаторов будет быстрее, чем скорость определения моделей, таких как логическая регрессия, поэтому вам потребуется меньше тренировочных данных. Даже если предположение о условной независимости НБ не сработает, то НБ классификаторы по-прежнему хорошо работают на практике.
Его главный недостаток заключается в том, что он не может изучать взаимодействие между характеристиками, что в мРМР означает, что R является избыточным характеристикой. Ссылаясь на более классический пример, например, хотя вы любите фильмы Брэда Питта и Тома Круза, он не может изучать фильмы, которые вам не нравятся вместе с ними.
Преимущества:
Простая модель Байеса, основанная на классической математической теории, имеет прочную математическую основу и стабильную эффективность классификации. Отлично работает с небольшими объемами данных, может обрабатывать многоклассовые задачи в одиночку и подходит для инвентарного обучения. Алгоритмы, которые не слишком чувствительны к отсутствующим данным, также просты и часто используются для классификации текста. Недостатки:
Необходимо рассчитать предыдущую вероятность. Уровень ошибок в принятии классификационных решений; Он чувствителен к формам выражения вводимых данных.
Принадлежит к определённой модели, существует множество способов нормализации моделей (L0, L1, L2, и т. д.), и вам не нужно беспокоиться о том, связаны ли ваши характеристики, как в случае с простым Байесом.
Вы также получаете хорошее объяснение вероятности по сравнению с деревьями решения и машинами SVM, и вы даже можете легко использовать новые данные для обновления модели (используйте алгоритм онлайн-потока спуска, онлайн-потока спуска).
Если вам нужна вероятностная структура (например, для простого регулирования порога классификации, указания неопределенности или получения интервала доверия), или вы хотите быстро интегрировать больше тренировочных данных в модель позже, используйте ее.
Функция сигмоида:
Преимущества: Простые и широко применяемые в промышленности; Очень небольшой объем обработки при классификации, быстрая скорость, низкий объем ресурсов для хранения; Удобное определение вероятности выборки; Для логической регрессии многолинейность не является проблемой, и она может быть решена в сочетании с L2 нормализацией; Недостатки: При большом пространстве характеристик логическое регрессирование не работает хорошо. Легко деформируется, обычно не очень точно Не может хорошо обрабатывать большое количество многообразных характеристик или переменных; Работает только с двумя классификационными проблемами (на основе этого выведенный softmax может использоваться для многоклассов) и должен быть линейно делящимся; Для нелинейных характеристик необходимо конвертировать.
Линейный регресс используется для регрессии, в отличие от логистического регресса, который используется для классификации. Основная идея его заключается в том, чтобы оптимизировать функцию погрешности в виде минимального двойного умножения с помощью gradient-descending, и, конечно же, можно напрямую искать решение параметров с помощью нормального уравнения.
В LWLR (локально-сбалансированная линейная регрессия) вычисление параметров выполнено следующим образом:
Таким образом, LWLR отличается от LR, LWLR является непараметрической моделью, поскольку каждый раз, когда выполняется регрессивное вычисление, необходимо проходить через тренировочный образец по крайней мере один раз.
Преимущества: простая реализация, простые вычисления;
Недостатки: Не подходит для нелинейных данных.
KNN - это алгоритм ближайшего соседа, основной процесс которого:
Расчет расстояния между каждой из точек образца в тренировочной и тестовой образцах (обычные измерения расстояния имеют европейское расстояние, расстояние Марса и т.д.);
Сортировать все вышеперечисленные значения расстояния;
Выберите наименьшее расстояние к образцу;
По результатам голосования по этим к-образным меткам получается окончательная категория;
Как выбрать оптимальное значение K, зависит от данных. В общем случае, более высокие значения K при классификации могут уменьшить влияние шума, но могут затушить границы между категориями.
Лучшее значение K может быть получено с помощью различных методов инфографики, например, с помощью перекрестной проверки. Кроме того, наличие шума и некоррелятивных векторов характеристик уменьшает точность алгоритма K-близких соседей.
Алгоритмы близкого соседства имеют более сильные результаты согласованности. По мере того как данные приближаются к бесконечности, алгоритмы гарантируют, что ошибочный коэффициент не превышает в два раза ошибочного коэффициента алгоритма Байеса. Для некоторых хороших значений K, алгоритмы близкого соседства гарантируют, что ошибочный коэффициент не превышает теоретического ошибочного коэффициента Байеса.
Преимущества алгоритма KNN
Теоретическая зрелость, простота мышления, которые можно использовать как для классификации, так и для регрессии. Используется для нелинейной классификации; Время обучения имеет сложность O ((n); Не допускает данных, высокая точность, не чувствительна к аутлиеру; Недостатки
Это очень важно. Проблема дисбаланса выборки (т.е. некоторые категории имеют большое количество выборки, а другие имеют небольшое количество); Это может быть очень сложно.
Легко объясняется. Он может обрабатывать взаимоотношения между характеристиками без стресса и является непараметричным, поэтому вам не нужно беспокоиться о том, что значения являются необычными или что данные линейно делятся (например, дерево решения может легко обрабатывать категорию A на конце измерения x, категорию B в середине, а затем категорию A снова появляется на переднем конце измерения x).
Одним из недостатков является то, что он не поддерживает онлайн-обучение, поэтому после появления нового образца дерево решения должно быть полностью перестроено.
Еще один недостаток заключается в том, что легко возникает перемещение, но это также является точкой отсчета для интеграционных методов, таких как Random Forest RF (или повышение деревьев с помощью деревьев).
Кроме того, случайный лес часто является победителем многих классификационных задач (обычно на одну точку лучше, чем поддерживающий вектор), он тренируется быстро и настраивается, и вам не нужно беспокоиться о том, чтобы настроить множество параметров, как поддерживающий вектор.
Очень важно в решении дерева выбрать свойство для разветвления, поэтому обратите внимание на формулу расчета информационного прибавления и глубоко ее понять.
Например, в 2010 году в Китае было зарегистрировано более 30 000 пользователей, из которых более половины - иностранцы.
Из них n представляет собой n категорий (например, предположим, что это проблемы типа 2, то n=2); рассчитывается вероятность p1 и p2 появления этих двух типов образцов в общей выборке, чтобы вычислить информационную паутину перед невыбранным разветвлением свойства.
Теперь выбирается свойство xixi, которое используется для разделения, при этом правила разделения таковы: если xi = vxi = v, разделить образец на одну ветвь дерева; если неравное, перейти на другую ветвь.
Очевидно, что образцы в ветвях, вполне вероятно, будут включать 2 категории, которые будут рассчитывать на H1 и H2 ветвей, а затем, вычисляя общую информацию H1 = p1 H1 + p2 H2 после ветвления, получат информационный прирост ΔH = H - H
Преимущества самого дерева
Простые, понятные и понятные вычисления; Сравнение образцов с недостающими свойствами, подходящих для обработки; Уметь обрабатывать не связанные с этим особенности; В сравнительно короткие сроки можно получить работоспособные и эффективные результаты на больших источниках данных. Недостатки
"Скоро бывает переоформление" (случайные леса могут значительно уменьшить переоформление); В результате, в результате, мы не смогли найти то, что мы хотим. Для тех данных, в которых количество образцов различных категорий не совпадает, результаты информационного прироста в дереве решения предпочитают характеристики с большим количественным количеством значений (имеется этот недостаток, если используется информационный прирост, например, RF).
Adaboost - это модель суммирования, в которой каждая модель построена на основе погрешности предыдущей модели, с чрезмерным вниманием к ошибочным образцам, а с меньшим вниманием к образцам, которые правильно классифицированы, чтобы после последовательного повторения получить относительно лучшую модель.
Преимущества
Adaboost - это классификатор с высокой точностью. Субклассификаторы могут быть построены различными способами. При использовании простых классификаторов результаты вычислений понятны, а конструкция слабых классификаторов чрезвычайно проста. Простой, без фильтрации функций. Некоторые из них не могут быть переоборудованы. О комбинированных алгоритмах, таких как Random Forest и GBDT, см. статью: Machine Learning - Summary of Combination Algorithms
Минусы: более чувствительны к аутлиеру
Высокая точность дает хорошие теоретические гарантии избежать переподстройки, и даже если данные неразделимы линейно в исходном пространстве характеристик, они могут работать хорошо при условии, что им дается подходящая ядерная функция.
Особенно популярна в проблемах с классификацией текста с гипервысокими измерениями движения. К сожалению, большое потребление памяти, трудность в объяснении, а также некоторые неудобства в работе и настройке, а случайный лес просто избегает этих недостатков и является более практичным.
Преимущества В этом случае мы можем решить высокоразмерные проблемы, то есть большие характеристики пространства. Возможность обрабатывать взаимодействие нелинейных характеристик; Не нужно полагаться на все данные. Это поможет улучшить способность к универсальности.
Недостатки В результате наблюдатели обнаруживают, что у них не так уж и эффективно наблюдать за большим количеством образцов. Не существует универсальных решений для нелинейных задач, и иногда бывает трудно найти подходящую ядерную функцию. Он был очень чувствителен к отсутствию данных. Для выбора ядра также уместно ((libsvm имеет четыре ядра: линейное ядро, многополярное ядро, RBF и сигмоидное ядро):
Во-первых, если количество образцов меньше числа характеристик, то нет необходимости выбирать нелинейные ядра, а просто использовать линейные ядра.
Во-вторых, если количество образцов больше, чем количество характеристик, то можно использовать нелинейные ядра, чтобы отобразить образцы в более высоких измерениях, что обычно дает лучшие результаты.
В-третьих, если количество образцов и количество признаков равны, то для этого можно использовать нелинейные ядра.
Для первого случая также можно сначала размерить данные, а затем использовать нелинейные ядра, что также является одним из способов.
Преимущества искусственных нейронных сетей: Высокая точность классификации; У них есть мощные параллельные распределенные процессоры, распределенное хранение и обучение. У них есть сильная устойчивость к шуму и терпимость к ошибкам, что позволяет полностью приблизиться к сложным нелинейным отношениям. Он также является одним из самых популярных и увлекательных сайтов в мире.
Недостатки искусственных нейронных сетей: Нейронная сеть требует большого количества параметров, таких как структура топологии сети, вес и начальные значения порогов. Невозможность наблюдения за процессом обучения, трудность объяснения результатов вывода, что влияет на достоверность и приемлемость результатов; Учиться слишком долго и даже не достичь цели.
Я уже писал статью о K-Means-классе, ссылка: Машинный алгоритм обучения - K-means-классы.
Преимущества Алгоритмы просты и просты в реализации; Для обработки больших наборов данных алгоритм является относительно масштабируемым и высокоэффективным, поскольку его сложность составляет примерно O ((nkt), где n - количество всех объектов, k - количество кубиков, t - количество повторений. Алгоритм пытается выяснить, какие к-подразделения дают наименьшее значение квадратической ошибки. Клубирование лучше, когда крем плотно, сферически или сплошно, а отличие между крем и крем явно.
Недостатки Высокие требования к типам данных, подходящие для цифровых данных; Возможно сходство с локальными минимумами и медленное сходство с большими данными. К-значения сложнее выбрать; Чувствительны к цензуре при первоначальном значении и могут приводить к различным результатам группировки при различных первоначальных значениях; Не подходит для обнаружения неконфузных форм или больших различий в размерах. Небольшое количество данных, чувствительных к шуму и изолированным точкам, может иметь огромное влияние на средние значения.
Алгоритм выбора ссылки
В одной из статей, в которой я переводил несколько зарубежных статей, я привел простую методику выбора алгоритма:
Первое, что следует выбрать, это логическое регрессирование, и если оно не работает, то его результаты можно использовать в качестве ориентира для сравнения с другими алгоритмами.
Затем попробуйте дерево решения (Random Forest) и посмотрите, может ли он значительно улучшить производительность вашей модели. Даже если вы не будете использовать его в качестве конечной модели, вы можете использовать Random Forest для удаления шума и выбора характеристик.
Если количество характеристик и наблюдаемых образцов особенно много, то использование SVM является опцией, когда ресурсов и времени достаточно (это важное условие).
Обычно:
Хотя алгоритмы важны, хорошие данные всегда превосходят хорошие алгоритмы, и создание хороших характеристик очень полезно. Если у вас есть очень большой набор данных, то каким бы алгоритмом вы ни использовали, это может не иметь большого влияния на производительность классификации (в этом случае вы можете делать выбор на основе скорости и удобства использования).