Регрессия в машинном обучении оптимальный алгоритм


Оглавление (нажмите, чтобы открыть):

10 главных алгоритмов машинного обучения

Введение

rustam1208

Последние статьи

Data Mining

10 главных алгоритмов машинного обучения

Нет сомнений, что искусственный интеллект и машинное обучение в течение последних нескольких лет обрели широкую известность. Как технологии Big Data удерживают статус самого обсуждаемого IT-тренда современности, так и алгоритмы машинного обучения можно считать наимощнейшим инструментом, ориентированным на прогнозное приложение больших объемов данных. Один из наиболее глобальных примеров использования машинного обучения — алгоритмы Netflix, которые предлагают посмотреть киноленты на основании тех, что пользователь видел ранее. Сюда же можно отнести и систему Amazon, рекомендующую приобрести книгу, отталкиваясь от купленных ранее электронных или печатных изданий.

Возможности машинного обучения довольно серьезные. Если вы хотите вплотную заняться его изучением, нужно определиться со стартовой позицией. Что касается меня, то впервые с искусственным интеллектом я столкнулся во время учебы заграницей, а именно в Копенгагене. Моим преподавателем был профессор прикладной математики и компьютерных наук Датского технического университета. Здесь он проводил исследования в области математической логики и искусственного интеллекта, уделяя основное внимание их применению для создания моделей с человекообразным ходом мысли. Занятия профессора можно охарактеризовать как смесь обсуждения теорий и основных концепций с практическим решением проблем. В течение курса мы использовали классическую в области ИИ книгу — С. Рассел, П. Норвиг «Искусственный интеллект — Современный подход». В ней в доступном виде подана информация о ключевых разделах, включая интеллектуальных агентов, решение проблем посредством поиска, задачи удовлетворения ограничений, основы планирования и вероятностные рассуждения. В конце каждого занятия мы реализовывали простые поисково-ориентированные агенты, решая задачи в виртуальной среде разработки.

Благодаря этим занятиям, я получил приличный багаж знаний и решил продолжить обучение в области машинного обучения. В течение всего июня 2020 года я посещал технические конференции в Сан-Франциско по глубинному обучению, нейронным сетям, организации данных и машинному обучению. Само главное, что в конце месяца я поступил на вводный ML-курс от Udacity и успешно закончил его через 2 недели. В этой статье я хочу поделиться с вами базовыми алгоритмами машинного обучения, которые мне удалось изучить в течение курса.

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

Контролируемое обучение

Дерево принятия решений

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

С точки зрения бизнес-решения, дерево классификации является минимальным количеством вопросов «да/нет», ответив на которые, можно сделать верный выбор. Если рассматривать дерево как метод, то оно позволяет подойти к решению проблемы со структурированной и систематической стороны, чтобы в итоге прийти к логическому выводу.

Наивная байесовская классификация

Наивные байесовские классификаторы представляют собой семейство простых вероятностных классификаторов, которые основаны на применении Теоремы Байеса со строгими (наивными) предположениями о независимости функций. На приведенном ниже изображении указано равенство; здесь P (A\B) является вероятностью гипотезы A при наступлении события B (апостериорная вероятность), P (B\A) — вероятностью наступления события B при истинности гипотезы A, P (A) — априорной вероятностью гипотезы A и P (B) — полной вероятностью наступления события B.

Абстрагируясь от теории и переходя к практике, можно выделить следующие сферы применения Теоремы Байеса:

  • «отлов» спама в электронной почте;
  • сегментация новостных статей по их тематике;
  • определение эмоционального окраса блока текста;
  • программное обеспечение для распознавания лиц.

Метод наименьших квадратов

Если вы знакомы со статистикой, то наверняка слышали о линейной регрессии ранее. Наименьшие квадраты выступают в роли метода для реализации линейной регрессии. Чаще всего она представляется в виде задачи подгонки прямой линии, проходящей через множество точек. Есть несколько вариантов ее осуществления, и метод наименьших квадратов — один из них. Можно нарисовать линию, а затем измерить расстояние по вертикали от каждой точки к линии и «перенести» эту сумму вверх. Необходимой линией будет та конструкция, где сумма расстояний будет минимальной. Иными словами, кривая проводится через точки, имеющие нормально распределенное отклонение от истинного значения.

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

Логистическая регрессия

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

Данный алгоритм активно используется в реальной жизни, а именно при:

  • оценке кредитоспособности лица (кредитном скоринге);
  • измерении показателей успешности маркетинговых кампаний;
  • предсказании доходов с определенного продукта;
  • вычислении возможности возникновения землетрясения в конкретный день.

Метод опорных векторов

Метод опорных векторов (SVM) — это набор алгоритмов, использующихся для задач классификации и регрессионного анализа. Учитывая, что в N-мерном пространстве каждый объект принадлежит одному из двух классов, SVM генерирует (N-1)-мерную гиперплоскость с целью разделения этих точек на 2 группы. Это как если бы вы на бумаге изобразили точки двух разных типов, которые можно линейно разделить. Помимо того, что метод выполняет сепарацию объектов, SVM подбирает гиперплоскость так, чтобы та характеризовалась максимальным удалением от ближайшего элемента каждой из групп.

Среди наиболее масштабных проблем, которые были решены с помощью метода опорных объектов (и его модифицированных реализаций) выделяют отображение рекламных баннеров на сайтах, распознавание пола на основании фотографии и сплайсинг человеческой ДНК.

Метод ансамблей

Метод ансамблей основан на обучающих алгоритмах, которые формируют множество классификаторов, а затем сегментируют новые точки данных, отталкиваясь от голосования или усреднения. Оригинальный метод ансамблей — не что иное, как Байесовское усреднение, но более поздние алгоритмы включают исправления ошибок выходного кодирования, бэггинг (bagging) и бустинг (boosting). Бустинг направлен на превращение слабых моделей в сильные путем построения ансамбля классификаторов. Бэггинг также агрегирует усовершенствованные классификаторы, но используется при этом параллельное обучение базовых классификаторов. Говоря языком математической логики, бэггинг — улучшающее объединение, а бустинг — улучшающее пересечение.

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

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

Неконтролируемое обучение

Алгоритмы кластеризации

Задача кластеризации состоит в группировании множества объектов таким образом, чтобы поместить максимально похожие между собой элементы в одну группу (кластер).

Алгоритмов кластеризации существует довольно много, и все они отличаются друг от друга. Самые популярные из них:

  • алгоритмы на базе центра тяжести треугольника;
  • алгоритмы на основе подключения;
  • алгоритмы плотности на основе пространственной кластеризации;
  • вероятностный алгоритм;
  • алгоритм уменьшения размерности;
  • нейронные сети и машинное обучение.

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

Метод главных компонент

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

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

Сингулярное разложение

В линейной алгебре под сингулярным разложением (SVD) понимают разложение прямоугольной вещественной или комплексной матрицы. Для матрицы M размерностью [m*n] существует такое разложение, что M = UΣV, где U и V — унитарные матрицы, а Σ — диагональная матрица.

Метод главных компонент является простым применением сингулярного разложения. Первые алгоритмы компьютерного виденья использовали PCA и SVD, чтобы представить лица в виде суммы базисных компонент, выполнить уменьшение размерности, а затем сопоставить их с изображениями из обучающей выборки. И хотя современные методы характеризуются более сложной реализацией, многие из них по-прежнему работают на базе подобных алгоритмов.

Анализ независимых компонент

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

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

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

Алгоритмы машинного обучения: основные понятия

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

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

Что такое алгоритмы машинного обучения?

Машинное обучение – это класс методов автоматического создания прогнозных моделей на основе данных. Алгоритмы машинного обучения превращают набор данных в модель. Какой алгоритм работает лучше всего (контролируемый, неконтролируемый, классификация, регрессия и т. д.), зависит от типа решаемой задачи, доступных вычислительных ресурсов и характера данных.

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

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

Алгоритмы нелинейной регрессии, которые «подгоняют» кривые (например, многочлены или экспоненты) к данным, немного сложнее: в отличие от задач линейной регрессии для них не существует детерминистских подходов. Вместо этого алгоритмы нелинейной регрессии реализуют тот или иной итерационный процесс минимизации, часто — некоторую вариацию метода самого крутого спуска.

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

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

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

Контролируемое обучение против неконтролируемого

Независимо от этих типов существуют еще два вида алгоритмов машинного обучения: контролируемые (supervised) и неконтролируемые (unsupervised). В контролируемом обучении формируется обучающий набор данных с ответами, скажем, набор изображений животных вместе с именами животных. Целью обучения будет модель, которая сможет правильно распознавать изображения (то есть узнавать животных, включенных в набор обучения), которые она ранее не видела.

При неконтролируемом обучении алгоритм сам просматривает данные и пытается получить значимые результаты. Результатом может быть, например, набор групп значений, которые могут быть связаны внутри каждой группы. Алгоритм работает надежнее, когда такие группы не пересекаются.

Обучение превращает контролируемые алгоритмы в модели, оптимизируя их параметры, чтобы найти набор значений, который наилучшим образом соответствует данным. Алгоритмы часто основываются на вариантах самого крутого спуска, оптимизированных для конкретного случая; пример — стохастический градиентный спуск (SGD), который является по существу самым крутым спуском, выполненным многократно от случайных начальных точек. Учет факторов, которые корректируют направление градиента на основе импульса или регулируют скорость обучения в зависимости на основе прогресса от одного прогона данных (его называют эпохой) к следующему, позволяют подобрать оптимальные настройки SGD.

Очистка данных для машинного обучения

Такой вещи, как чистые данные, не существует. Чтобы быть полезными для машинного обучения, данные должны быть сильно отфильтрованы. Например, можно:

  • Просмотреть данные и исключить все столбцы, в которых много недостающих данных.
  • Просмотреть данные еще раз и выбрать столбцы, которые будут использованы для прогнозирования. (Если эту операцию повторять эту операцию несколько раз, то можно выбирать разные столбцы.)
  • Исключить все строки, в которых отсутствуют данные в оставшихся столбцах.
  • Исправить очевидные опечатки и объединить эквивалентные значения. Скажем, РФ, Российская Федерация и Россия могут быть собраны в одну категорию.
  • Исключить строки с данными, которые находятся вне нужного диапазона. Например, если анализировать поездки на такси в пределах Москвы, вы захотите отфильтровать строки с широтами и долготами, которые находятся за пределами агломерации.


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

Кодирование и нормализация данных для машинного обучения

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

Первая – нумерация меток, каждое значение текстовой метки заменяется числом. Вторая – «единая горячая» (one-hot) кодировка, каждое значение текстовой метки превращается в столбец с двоичным значением (1 или 0). Большинство платформ машинного обучения имеют функции, которые выполняют кодировку самостоятельно. Как правило, предпочтительной является единая горячая кодировка, поскольку нумерация меток иногда может запутать алгоритм машинного обучения, заставляя думать, что коды упорядочены.

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

Что такое признаки в машинном обучении?

Признак – это индивидуальное измеримое свойство или характеристика наблюдаемого явления. Понятие «признак» связано с понятием независимой переменной, которая используется в статистических методах, таких как линейная регрессия. Векторы признаков объединяют все признаки одной строки в числовой вектор.

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

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

Общие алгоритмы машинного обучения

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

Вот некоторые из наиболее распространенных алгоритмов:

  • линейная регрессия, она же регрессия наименьших квадратов (для числовых данных);
  • логистическая регрессия (для бинарной классификации);
  • линейный дискриминантный анализ (для мультикатегорийной классификации);
  • деревья решений (для классификации и регрессии);
  • наивный байесовский классификатор (для классификации и регрессии);
  • метод k-ближайших соседей, он же k-NN (для классификации и регрессии);
  • обучение нейронной сети Кохонена, он же LVQ (для классификации и регрессии);
  • метод опорных векторов, он же SVM (для двоичной классификации);
  • «случайный лес» и методы бэггинга (для классификации и регрессии);
  • методы бустинга, включая AdaBoost и XGBoost, являются ансамблями алгоритмов, которые создают серию моделей, где каждая новая модель пытается исправить ошибки предыдущей модели (для классификации и регрессии).

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

Гиперпараметры для алгоритмов машинного обучения

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

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

Многие другие распространенные гиперпараметры зависят от используемых алгоритмов. Большинство алгоритмов имеют параметры остановки, такие как максимальное число эпох, максимальное время выполнения или минимальное улучшение от эпохи к эпохе. Определенные алгоритмы имеют гиперпараметры, которые управляют формой их поиска. Например, классификатор случайного леса имеет гиперпараметры для минимальных выборок на лист, максимальной глубины, минимальных выборок при расщеплении, минимальной массовой доли для листа и проч.

Некоторые платформы машинного обучения предусматривают автоматическую настройку гиперпараметров. По сути, системе следует сообщить, какие гиперпараметры надо изменить, и, возможно, какую метрику требуется оптимизировать, и система просматривает эти гиперпараметры столько запусков, сколько ей будет позволено. (Например, Google Cloud hyperparameter tuning извлекает соответствующую метрику из модели TensorFlow, поэтому вам не нужно ее указывать.)

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

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

Автоматизированное машинное обучение

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

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

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

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

Поделитесь материалом с коллегами и друзьями

machine-learning Линейная регрессия

пример

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

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

Линейная регрессия Используется для оценки реальных значений (стоимость домов, количество вызовов, общий объем продаж и т. Д.) На основе непрерывной переменной (ов). Здесь мы устанавливаем связь между независимыми и зависимыми переменными, устанавливая лучшую линию. Эта линия наилучшего соответствия известна как линия регрессии и представлена ​​линейным уравнением Y = a * X + b.

Лучший способ понять линейную регрессию — пережить этот опыт детства. Скажем, вы просите ребенка в пятом классе устраивать людей в своем классе, увеличивая порядок веса, не спрашивая их веса! Как вы думаете, что будет делать ребенок? Он / она, вероятно, будет выглядеть (визуально анализировать) на высоте и строить людей и организовывать их, используя комбинацию этих видимых параметров.

Это линейная регрессия в реальной жизни! Ребенок фактически понял, что высота и строение будут соотнесены с весом соотношением, которое выглядит как приведенное выше уравнение.

В этом уравнении:

Эти коэффициенты a и b производятся на основе минимизации суммы квадратов разности расстояний между точками данных и линией регрессии.

Посмотрите на приведенный ниже пример. Здесь мы определили линию наилучшего соответствия, имеющую линейное уравнение y = 0,2811x + 13,9 . Теперь, используя это уравнение, мы можем найти вес, зная высоту человека.

Линейная регрессия состоит в основном из двух типов: простая линейная регрессия и множественная линейная регрессия. Простая линейная регрессия характеризуется одной независимой переменной. И, множественная линейная регрессия (как следует из названия) характеризуется несколькими (более 1) независимыми переменными. Найдя наилучшую линию, вы можете поместить полиномиальную или криволинейную регрессию. И они известны как полиномиальная или криволинейная регрессия.

Просто намек на реализацию линейной регрессии в Python

Я дал представление о понимании контролируемого обучения, сводящегося к алгоритму линейной регрессии, а также фрагмента кода Python.

Десять алгоритмов машинного обучения, которые вам нужно знать

Различия и особенности десяти популярных алгоритмов машинного обучения.

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

Эти алгоритмы можно разделить на три основные категории.

  1. Контролируемые алгоритмы: набор обучающих данных имеет входные данные, а также желаемый результат. Во время обучения модель будет корректировать свои переменные для сопоставления входных данных с соответствующим выходом.
  2. Неконтролируемые алгоритмы: в этой категории нет желаемого результата. Алгоритмы будут группировать набор данных на разные группы.
  3. Алгоритмы с подкреплением: эти алгоритмы обучаются на готовых решениях. На основе этих решений алгоритм будет обучаться на основе успеха/ошибки результата. В конечном счете алгоритм сможет давать хорошие прогнозы.

Следующие алгоритмы будут описываться в этой статье.

  • Линейная регрессия
  • SVM (метод опорных векторов)
  • KNN (метод k-ближайших соседей)
  • Логистическая регрессия
  • Дерево решений
  • Метод k-средних
  • Random Forest
  • Наивный байесовский классификатор
  • Алгоритмы сокращения размеров
  • Алгоритмы усиления градиента

1. Линейная регрессия (linear regression)

Алгоритм линейной регрессии будет использовать точки данных для поиска оптимальной линии для создания модели. Линию можно представить уравнением y = m*x + c, где y – зависимая переменная, а x – независимая переменная. Базовые теории исчисления применяются для определения значений для m и c с использованием заданного набора данных.

Мастер Йода рекомендует:  Разбираемся с AsyncAwait в JavaScript на примерах

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

scikit-learn — это простой и эффективный инструмент для машинного обучения на Python. Ниже представлена реализация линейной регрессии при помощи scikit-learn.

2. Метод опорных векторов (SVM — Support Vector Machine)

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

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

3. Метод k-ближайших соседей (KNN — K-nearest neighbors)

Это простой алгоритм, который предсказывает неизвестную точку данных на основе её k ближайших соседей. Значение k здесь критически важный фактор, который определяет точность предсказания. Ближайшая точка определяется исходя из базовых функций расстояния, вроде Евклидовой.

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

4. Логистическая регрессия (logistic regression)

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

“Сигмоид” — это одна из таких функций в форме буквы S, которая используется для бинарной классификации. Она конвертирует значения в диапазон от 0 до 1, что является вероятностью возникновения события.

y = e^(b0 + b1*x) / (1 + e^(b0 + b1*x))

Выше находится простое уравнение логистической регрессии, где b0 и b1 — это постоянные.Во время обучения значения для них будут вычисляться таким образом, чтобы ошибка между предсказанием и фактическим значением становилась минимальной.

5. Дерево решений (decision tree)

Этот алгоритм распределяет данные на несколько наборов на основе каких-либо свойств (независимых переменных). Обычно этот алгоритм используется для решения проблем классификации. Категоризация используется на основе методов вроде Джини, Хи-квадрат, энтропия и так далее.

Возьмем группу людей и используем алгоритм дерева решений, чтобы понять, кто из них имеет кредитную карту. Например, возьмем возраст и семейное положение в качестве свойств. Если человеку больше 30 лет и он/она замужем или женат, то вероятность того, что у них есть кредитная карта, выше.


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

6. Метод k-средних (k-means)

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

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

7. Случайный лес (Random Forest)

Random Forest — это коллекция деревьев решений. Каждое дерево пытается оценить данные, и это называется голосом. В идеале мы рассматриваем каждый голос от каждого дерева и выбираем классификацию с большим количеством голосов.

8. Наивный байесовский классификатор (Naive Bayes)

Этот алгоритм основан на теореме Байеса. Благодаря этому наивный байесовский классификатор можно применить, только если функции независимы друг от друга. Если мы попытаемся предсказать вид цветка на основе длины и ширины его лепестка, мы сможем использовать этот алгоритм, так как функции не зависят друг от друга.

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

9. Алгоритмы сокращения размеров (dimensional reduction algorithms)

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

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

10. Алгоритмы усиления градиента (gradient boosting algorithms)

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

Существует несколько алгоритмов усиления градиента:

  • XGBoost — использует линейные алгоритмы и дерево решений
  • LightGBM — использует только алгоритмы, основанные на деревьях

Особенность алгоритмов усиления градиента — это их высокая точность. Более того, алгоритмы вроде LightGBM имеют и высокую производительность.

Выбор алгоритмов для Машинное обучение Azure Studio (классическая модель) How to choose algorithms for Azure Machine Learning Studio (classic)

Клиентам, которые в настоящее время используют или оценивают Студию машинного обучения (классическую), рекомендуется попробовать конструктор Машинного обучения Azure (предварительная версия), который предоставляет модули машинного обучения для перетаскивания, а также масштабируемость, управление версиями и корпоративную безопасность. Customers currently using or evaluating Machine Learning Studio (classic) are encouraged to try Azure Machine Learning designer (preview), which provides drag-n-drop ML modules plus scalability, version control, and enterprise security.

Ответ на вопрос «Какие алгоритмы машинного обучения использовать?» The answer to the question «What machine learning algorithm should I use?» всегда звучит так: «Это зависит от ряда обстоятельств». is always «It depends.» Это зависит от размера, качества и природы данных. It depends on the size, quality, and nature of the data. Это зависит от того, что нужно сделать с ответом. It depends on what you want to do with the answer. Это зависит от того, как математический алгоритм был преобразован в инструкции для вашего компьютера. It depends on how the math of the algorithm was translated into instructions for the computer you are using. И это зависит от того, сколько времени у вас есть. And it depends on how much time you have. Даже самые опытные специалисты по данным не смогут определить наилучший алгоритм, не попробовав его. Even the most experienced data scientists can’t tell which algorithm will perform best before trying them.

Машинное обучение Studio (классическая модель) предоставляет современные алгоритмы, например масштабируемые высокопроизводительные деревья решений, системы рекомендаций Байеса, глубокие нейронные сети и джунгли решений, разработанные в Microsoft Research. Machine Learning Studio (classic) provides state-of-the-art algorithms, such as Scalable Boosted Decision trees, Bayesian Recommendation systems, Deep Neural Networks, and Decision Jungles developed at Microsoft Research. В состав также включены масштабируемые пакеты машинного обучения с открытым исходным кодом, такие как Vowpal Wabbit. Scalable open-source machine learning packages, like Vowpal Wabbit, are also included. Классическая версия Машинное обучение Studio поддерживает алгоритмы машинного обучения для многоклассовой и двоичной классификации, регрессии и кластеризации. The classic version of Machine Learning Studio supports machine learning algorithms for multiclass and binary classification, regression, and clustering. Ознакомьтесь с полным списком модулей машинного обучения. See the complete list of Machine Learning Modules. В документации предоставлена некоторая информация о каждом из алгоритмов, а также способах настройки параметров для оптимизации использования алгоритма. The documentation provides some information about each algorithm and how to tune parameters to optimize the algorithm for your use.

Памятка по алгоритмам машинного обучения The Machine Learning Algorithm Cheat Sheet

Лист машинное обучение Microsoft Azure Algorithm Памятка по позволяет выбрать подходящий алгоритм машинного обучения для решений прогнозной аналитики из машинное обучение Azure библиотеки алгоритмов. The Microsoft Azure Machine Learning Algorithm Cheat Sheet helps you choose the right machine learning algorithm for your predictive analytics solutions from the Azure Machine Learning library of algorithms. В этой статье описывается, как использовать этот лист Памятка по. This article walks you through how to use this cheat sheet.

Чтобы скачать лист Памятка по и перейти к этой статье, перейдите на лист Памятка по «алгоритм машинного обучения». To download the cheat sheet and follow along with this article, go to Machine learning algorithm cheat sheet.

Эти рекомендации представляют собой объединенные отзывы и советы от большого количества специалистов по обработке и анализу данных, а также экспертов по машинному обучению. These recommendations are compiled feedback and tips from many data scientists and machine learning experts. Мы не согласились обо всем, но мы попытались хармонизе наши мнения в грубое согласие. We didn’t agree on everything, but we’ve tried to harmonize our opinions into a rough consensus. Большинство инструкций, в которых возникли разногласия, начинаются со слов «Это зависит от. » Most of the statements of disagreement begin with «It depends…»

Скачайте наглядную инфографику по основам машинного обучения и ознакомьтесь с популярными алгоритмами, которые используются для ответа на распространенные вопросы о машинном обучении. To download an easy-to-understand infographic overview of machine learning basics to learn about popular algorithms used to answer common machine learning questions, see Machine learning basics with algorithm examples.

Разновидности машинного обучения Flavors of machine learning

Контролируемое Supervised

Контролируемые алгоритмы обучения выполняют прогнозирование на основе набора примеров. Supervised learning algorithms make predictions based on a set of examples. Например, можно использовать исторические цены на акции, чтобы принять предположения о будущих ценах. For instance, historical stock prices can be used to make guesses about future prices. Каждый пример, используемый для обучения, помечается интересующим нас значением — в данном случае это стоимость акций. Each example used for training is labeled with the value of interest—in this case the stock price. Контролируемый алгоритм обучения выполняет поиск шаблонов в этих значениях. A supervised learning algorithm looks for patterns in those value labels. Он может использовать любые соответствующие сведения — день недели, время года, финансовые данные компании, тип отрасли, наличие важных геополитических событий — и каждый алгоритм ищет шаблоны различных типов. It can use any information that might be relevant—the day of the week, the season, the company’s financial data, the type of industry, the presence of disruptive geopolitical events—and each algorithm looks for different types of patterns. После того как алгоритм обнаружил наилучший шаблон, он может на основе этого шаблона предсказать неразмеченные проверочные данные — завтрашние цены. After the algorithm has found the best pattern it can, it uses that pattern to make predictions for unlabeled testing data—tomorrow’s prices.

Контролируемое обучение — это популярный и полезный тип машинного обучения. Supervised learning is a popular and useful type of machine learning. За одним исключением, все модули в классической версии Машинное обучение Azure Studio являются контролируемыми алгоритмами обучения. With one exception, all the modules in the classic version of Azure Machine Learning Studio are supervised learning algorithms. Существует несколько определенных типов контролируемого обучения, представленных в Машинное обучение Azure Studio (классическая модель): классификация, регрессия и обнаружение аномалий. There are several specific types of supervised learning that are represented within Azure Machine Learning Studio (classic): classification, regression, and anomaly detection.

  • Классификация. Classification. Если данные используются для прогнозирования категории, контролируемое обучение также называется классификацией. When the data are being used to predict a category, supervised learning is also called classification. Это происходит, когда рисунок определяется как изображение «кошки» или «собаки». This is the case when assigning an image as a picture of either a ‘cat’ or a ‘dog’. При наличии только двух вариантов такая классификация называется двухклассной или биномиальной. When there are only two choices, it’s called two-class or binomial classification. При наличии нескольких категорий, как при прогнозировании победителя турнира NCAA March Madness, классификация называется многоклассовой. When there are more categories, as when predicting the winner of the NCAA March Madness tournament, this problem is known as multi-class classification.
  • Регрессия. Regression. При прогнозировании значения, например стоимости акций, контролируемое обучение называется регрессией. When a value is being predicted, as with stock prices, supervised learning is called regression.
  • Обнаружение аномалий. Anomaly detection. Иногда задача состоит в идентификации точек данных, которые просто являются необычными. Sometimes the goal is to identify data points that are simply unusual. Например, при выявлении мошенничества с кредитной картой подозрительными являются любые необычные операции оплаты. In fraud detection, for example, any highly unusual credit card spending patterns are suspect. Количество возможных вариантов так велико, а количество известных примеров так мало, что научиться определять мошеннические действия очень трудно. The possible variations are so numerous and the training examples so few, that it’s not feasible to learn what fraudulent activity looks like. Метод обнаружения аномалий заключается в том, чтобы просто узнать, как выглядит нормальная активность (с помощью истории немошеннических транзакций) и определить что-то существенно другое. The approach that anomaly detection takes is to simply learn what normal activity looks like (using a history of non-fraudulent transactions) and identify anything that is significantly different.

Неконтролируемое Unsupervised

При неконтролируемом обучении точкам данных не присваиваются метки. In unsupervised learning, data points have no labels associated with them. Вместо этого цель алгоритма неконтролируемого обучения — определенное упорядочивание данных или описание их структуры. Instead, the goal of an unsupervised learning algorithm is to organize the data in some way or to describe its structure. Это может означать группировку данных в кластеры или поиск различных способов анализа сложных данных для их упрощения или улучшения их организации. This can mean grouping it into clusters or finding different ways of looking at complex data so that it appears simpler or more organized.

Обучение с подкреплением Reinforcement learning

В обучении с подкреплением алгоритм выбирает действие в ответ на каждую точку данных. In reinforcement learning, the algorithm gets to choose an action in response to each data point. Алгоритм обучения также вскоре получает сигнал, оповещающий об успехе, который дает понять, насколько удачно было принято решение. The learning algorithm also receives a reward signal a short time later, indicating how good the decision was. На основе этого алгоритм изменяет свою стратегию для достижения лучшего результата. Based on this, the algorithm modifies its strategy in order to achieve the highest reward. В настоящее время в Машинное обучение Azure Studio (классическая модель) отсутствуют модули алгоритма обучения подкреплением. Currently there are no reinforcement learning algorithm modules in Azure Machine Learning Studio (classic). Обучение с подкреплением широко распространено в робототехнике, где набор показаний датчиков в один момент времени представляет собой точку данных и алгоритму необходимо выбрать следующее действие робота. Reinforcement learning is common in robotics, where the set of sensor readings at one point in time is a data point, and the algorithm must choose the robot’s next action. Кроме того, оно естественным образом подходит для приложений из Интернета вещей. It is also a natural fit for Internet of Things applications.

Рекомендации по выбору алгоритма Considerations when choosing an algorithm

Точность Accuracy

Получение наиболее точного ответа необходимо не всегда. Getting the most accurate answer possible isn’t always necessary. Иногда достаточно приближенного ответа в зависимости от того, для чего он используется. Sometimes an approximation is adequate, depending on what you want to use it for. В этом случае можно значительно сократить время обработки, придерживаясь более приближенных методов. If that’s the case, you may be able to cut your processing time dramatically by sticking with more approximate methods. Еще одним преимуществом более приближенных методов является то, что они обычно позволяют избежать перегонки. Another advantage of more approximate methods is that they naturally tend to avoid overfitting.

Время обучения Training time

Количество минут или часов, необходимых для обучения модели, сильно отличается для различных алгоритмов. The number of minutes or hours necessary to train a model varies a great deal between algorithms. Время обучения часто тесно связано с точностью — одно обычно сопутствует другому. Training time is often closely tied to accuracy—one typically accompanies the other. Кроме того, некоторые алгоритмы более чувствительны к количеству точек данных, чем другие. In addition, some algorithms are more sensitive to the number of data points than others. Когда время ограничено, это может повлиять на выбор алгоритма, особенно с большим набором данных. When time is limited it can drive the choice of algorithm, especially when the data set is large.

Линейность Linearity

Линейность используется во многих алгоритмах машинного обучения. Lots of machine learning algorithms make use of linearity. Алгоритмы линейной классификации предполагают, что классы могут быть разделены прямой линией (или ее аналогом для большего числа измерений). Linear classification algorithms assume that classes can be separated by a straight line (or its higher-dimensional analog). К ним относятся логистическая регрессия и поддержка векторных компьютеров (как реализовано в Машинное обучение Azure Studio (классическая модель)). These include logistic regression and support vector machines (as implemented in Azure Machine Learning Studio (classic)). Алгоритмы линейной регрессии предполагают, что тренды данных следуют прямой линии. Linear regression algorithms assume that data trends follow a straight line. Эти предположения допустимы для ряда задач, но для других задач они приводят к снижению точности. These assumptions aren’t bad for some problems, but on others they bring accuracy down.

Граница нелинейного класса — использование алгоритма линейной классификации приведет к низкой точности Non-linear class boundary — relying on a linear classification algorithm would result in low accuracy

Данные с нелинейным трендом — использование алгоритма линейной классификации приведет к появлению гораздо большего количества ошибок, чем необходимо Data with a nonlinear trend — using a linear regression method would generate much larger errors than necessary

Несмотря на их опасность, линейные алгоритмы очень популярны на первой линии атаки. Despite their dangers, linear algorithms are very popular as a first line of attack. Обычно они алгоритмически просты и быстро осваиваются. They tend to be algorithmically simple and fast to train.

Количество параметров Number of parameters

Параметры являются теми регуляторами, которые специалист по данным поворачивает при настройке алгоритма. Parameters are the knobs a data scientist gets to turn when setting up an algorithm. Это числа, которые влияют на поведение алгоритма, например чувствительность к ошибкам или количество итераций, или на варианты поведения алгоритма. They are numbers that affect the algorithm’s behavior, such as error tolerance or number of iterations, or options between variants of how the algorithm behaves. Время обучения и точность алгоритма иногда могут быть очень чувствительными к точности задания параметров. The training time and accuracy of the algorithm can sometimes be quite sensitive to getting just the right settings. Как правило, алгоритмы с большим количеством параметров занимают больше всего проб и ошибок, чтобы найти хорошее сочетание. Typically, algorithms with large numbers of parameters require the most trial and error to find a good combination.

Кроме того, существует блок очистки параметров в классической версии машинное обучение Azure Studio, которая автоматически пытается использовать все сочетания параметров при любой выбранной детализации. Alternatively, there is a parameter sweeping module block in the classic version of Azure Machine Learning Studio that automatically tries all parameter combinations at whatever granularity you choose. Хотя это отличный способ убедиться в том, что вы заполнили пространство параметров, с увеличением количества параметров экспоненциально возрастает время, необходимое для обучения модели. While this is a great way to make sure you’ve spanned the parameter space, the time required to train a model increases exponentially with the number of parameters.

Плюсом является то, что наличие большого количества параметров обычно означает, что алгоритм имеет большую гибкость. The upside is that having many parameters typically indicates that an algorithm has greater flexibility. Это часто достигает очень хорошей точности, при условии, что вы можете найти правильное сочетание настроек параметров. It can often achieve very good accuracy, provided you can find the right combination of parameter settings.

Количество функций Number of features

Для некоторых типов данных количество функций может быть очень большим по сравнению с количеством точек данных. For certain types of data, the number of features can be very large compared to the number of data points. Это часто происходит с генетическими или текстовыми данными. This is often the case with genetics or textual data. Большое количество функций для некоторых алгоритмов обучения может привести к тому, что они увязнут и время обучения станет недопустимо большим. The large number of features can bog down some learning algorithms, making training time unfeasibly long. Для этого варианта особенно хорошо подходит метод опорных векторов (см. ниже). Support Vector Machines are particularly well suited to this case (see below).

Особые случаи Special cases

Некоторые алгоритмы обучения делают определенные предположения о структуре данных или желаемых результатов. Some learning algorithms make particular assumptions about the structure of the data or the desired results. Если вы сможете найти тот алгоритм, который соответствует вашим потребностям, с ним вы сможете получить более точные результаты, более точные прогнозы и сократить время обучения. If you can find one that fits your needs, it can give you more useful results, more accurate predictions, or faster training times.

Алгоритм Algorithm Точность Accuracy Время обучения Training time Линейность Linearity Параметры Parameters Примечания Notes
Двуклассовая классификация Two-class classification
логистическая регрессия logistic regression ● ● ● ● 5 5
лес решений decision forest ● ● ○ ○ 6 6
джунгли решений decision jungle ● ● ○ ○ 6 6 Низкий объем памяти Low memory footprint
увеличивающееся дерево решений boosted decision tree ● ● ○ ○ 6 6 Большой объем памяти Large memory footprint
нейронная сеть neural network ● ● 9 9 Возможна дополнительная настройка Additional customization is possible
усредненное восприятие averaged perceptron ○ ○ ○ ○ ● ● 4. 4
метод опорных векторов support vector machine ○ ○ ● ● 5 5 Подходит для больших наборов функций Good for large feature sets
локально глубокий метод опорных векторов locally deep support vector machine ○ ○ 8 8 Подходит для больших наборов функций Good for large feature sets
точечная машина Байеса Bayes’ point machine ○ ○ ● ● 3 3
Многоклассовая классификация Multi-class classification
логистическая регрессия logistic regression ● ● ● ● 5 5
лес решений decision forest ● ● ○ ○ 6 6
джунгли решений decision jungle ● ● ○ ○ 6 6 Низкий объем памяти Low memory footprint
нейронная сеть neural network ● ● 9 9 Возможна дополнительная настройка Additional customization is possible
one-v-all one-v-all Просмотрите свойства выбранного двухклассового метода See properties of the two-class method selected
Регрессия Regression
линейная linear ● ● ● ● 4. 4
Байесовская линейная Bayesian linear ○ ○ ● ● 2 2
лес решений decision forest ● ● ○ ○ 6 6
увеличивающееся дерево решений boosted decision tree ● ● ○ ○ 5 5 Большой объем памяти Large memory footprint
квантильная регрессия быстрого леса fast forest quantile ● ● ○ ○ 9 9 Распределения, а не точечные прогнозы Distributions rather than point predictions
нейронная сеть neural network ● ● 9 9 Возможна дополнительная настройка Additional customization is possible
регрессия Пуассона Poisson ● ● 5 5 С технической точки зрения логлинейная. Technically log-linear. Для прогнозирования количества For predicting counts
порядковая ordinal 0 0 Для прогнозирования упорядочения за рангом For predicting rank-ordering
Обнаружение аномалий Anomaly detection
метод опорных векторов support vector machine ○ ○ ○ ○ 2 2 Особенно полезна для больших наборов функций Especially good for large feature sets
Обнаружение аномалий на основе анализа первичных компонентов PCA-based anomaly detection ○ ○ ● ● 3 3
K-средних K-means ○ ○ ● ● 4. 4 Алгоритм кластеризации A clustering algorithm

Свойства алгоритма: Algorithm properties:

— показывает высокую точность, быстрое время обучения и использует линейность — shows excellent accuracy, fast training times, and the use of linearity

— показывает хорошую точность и умеренное время обучения — shows good accuracy and moderate training times

Примечания к алгоритму Algorithm notes

Linear regression Linear regression

Как упоминалось ранее, линейная регрессия связывает с набором данных линию (либо плоскость или гиперплоскость). As mentioned previously, linear regression fits a line (or plane, or hyperplane) to the data set. Это быстрая и простая «рабочая лошадка», но она может быть излишне простой для некоторых задач. It’s a workhorse, simple and fast, but it may be overly simplistic for some problems.

Данные с линейным трендом Data with a linear trend

логистическая регрессия Logistic regression

Хотя в имени содержится «регрессия», логистическая регрессия на самом деле является мощным средством для классификации с двумя классами и несколькими классами . Although it includes ‘regression’ in the name, logistic regression is actually a powerful tool for two-class and multiclass classification. Это быстрый и простой метод. It’s fast and simple. Тот факт, что в нем вместо прямой линии используется S-образная кривая, позволяет естественным образом использовать его для разделения данных на группы. The fact that it uses an ‘S’-shaped curve instead of a straight line makes it a natural fit for dividing data into groups. Логистическая регрессия приводит к появлению линейных границ классов, поэтому при ее использовании убедитесь, что вам комфортно с линейной аппроксимацией. Logistic regression gives linear class boundaries, so when you use it, make sure a linear approximation is something you can live with.

Логистическая регрессия для двухклассовых данных со всего одной функцией — граница класса является точкой, в которой логистическая кривая равноудалена от обоих классов A logistic regression to two-class data with just one feature — the class boundary is the point at which the logistic curve is just as close to both classes

Деревья, леса и джунгли Trees, forests, and jungles

Леса решений (регрессионные, двухклассовые и многоклассовые), джунгли решений (двухклассовые и многоклассовые) и увеличивающиеся деревья решений (регрессионные и двухклассовые) основаны на деревьях решений, базовой концепции машинного обучения. Decision forests (regression, two-class, and multiclass), decision jungles (two-class and multiclass), and boosted decision trees (regression and two-class) are all based on decision trees, a foundational machine learning concept. Существует множество вариантов деревьев решений, но все они делают одно и то же: подразделяют пространство функций на области с преимущественно одинаковыми метками. There are many variants of decision trees, but they all do the same thing—subdivide the feature space into regions with mostly the same label. Это могут быть области с одинаковой категорией или одинаковым значением в зависимости от того, проводится ли классификация или регрессия. These can be regions of consistent category or of constant value, depending on whether you are doing classification or regression.

Дерево решений подразделяет пространство функций на области примерно c одинаковыми значениями. A decision tree subdivides a feature space into regions of roughly uniform values

Так как пространство функций можно подразделить на регионы произвольного размера, легко представить такое разделение, при котором в одном регионе будет только одна точка данных. Because a feature space can be subdivided into arbitrarily small regions, it’s easy to imagine dividing it finely enough to have one data point per region. Это крайний пример чрезмерно высокой точности. This is an extreme example of overfitting. Чтобы избежать этого, для большого набора деревьев создается специальная математическая осторожность, предпринимаемая для обеспечения того, что деревья не коррелированы. In order to avoid this, a large set of trees are constructed with special mathematical care taken to ensure the trees are not correlated. Средним для этого «леса решений» является дерево, что позволяет избежать чрезмерно высокой точности. The average of this «decision forest» is a tree that avoids overfitting. Леса решений могут использовать большой объем памяти. Decision forests can use a lot of memory. Джунгли решений — это вариант, который используют меньший объем памяти за счет небольшого увеличения времени обучения. Decision jungles are a variant that consumes less memory at the expense of a slightly longer training time.


В увеличивающихся деревьях решений во избежание чрезмерно высокой точности ограничиваются количество повторных делений и минимальное количество точек данных в каждом регионе. Boosted decision trees avoid overfitting by limiting how many times they can subdivide and how few data points are allowed in each region. Алгоритм создает последовательность деревьев, каждое из которых учится компенсировать ошибки, оставленные предыдущим деревом. The algorithm constructs a sequence of trees, each of which learns to compensate for the error left by the tree before. В результате мы получаем очень точный механизм обучения, который, как правило, использует большой объем памяти. The result is a very accurate learner that tends to use a lot of memory. Полное техническое описание см. в исходном документе Фридмана. For the full technical description, check out Friedman’s original paper.

Квантильная регрессия быстрого леса является разновидностью дерева решений для особого случая, в котором вы хотите знать не только типичное (среднее) значение данных в пределах региона, но его распределение в виде квантилей. Fast forest quantile regression is a variation of decision trees for the special case where you want to know not only the typical (median) value of the data within a region, but also its distribution in the form of quantiles.

Нейронные сети и восприятия Neural networks and perceptrons

Нейронные сети — это алгоритмы обучения, вдохновленные устройством человеческого мозга, которые охватывают многоклассовые, двухклассовые и регрессионные задачи. Neural networks are brain-inspired learning algorithms covering multiclass, two-class, and regression problems. Они бывают бесконечными, но нейронные сети в классической версии Машинное обучение Azure Studio представляют собой все формы направленных графов ациклический. They come in an infinite variety, but the neural networks within the classic version of Azure Machine Learning Studio are all of the form of directed acyclic graphs. Это означает, что входные функции передаются вперед (и только вперед) по последовательности слоев, после чего превращаются в выходные данные. That means that input features are passed forward (never backward) through a sequence of layers before being turned into outputs. В каждом слое входные функции взвешиваются в различных сочетаниях, суммируются и передаются на следующий уровень. In each layer, inputs are weighted in various combinations, summed, and passed on to the next layer. Такое сочетание простых вычислений дает возможность как по волшебству изучать границы сложных классов и тренды данных. This combination of simple calculations results in the ability to learn sophisticated class boundaries and data trends, seemingly by magic. Многослойные сети такого типа выполняют «глубокое обучение», которое так широко представлено в технических отчетах и научно-фантастической литературе. Many-layered networks of this sort perform the «deep learning» that fuels so much tech reporting and science fiction.

Но такая высокая производительность имеет и обратную сторону. This high performance doesn’t come for free, though. На обучение нейронных сетей может уходить длительное время, особенно для больших наборов данных с большим количеством функций. Neural networks can take a long time to train, particularly for large data sets with lots of features. Они также имеют больше параметров, чем большинство алгоритмов, что означает, что корректировка параметров значительно удлиняет время обучения. They also have more parameters than most algorithms, which means that parameter sweeping expands the training time a great deal. А для тех, кто хочет превысить собственные достижения и определить собственную структуру сети, возможности нейронных сетей неисчерпаемы. And for those overachievers who wish to specify their own network structure, the possibilities are inexhaustible.

Границы, изучаемые нейронными сетями, могут быть сложными и нестандартными. The boundaries learned by neural networks can be complex and irregular

Двухклассное усредненное восприятие — ответ нейронных сетей на огромное увеличение времени обучения. The two-class averaged perceptron is neural networks’ answer to skyrocketing training times. В нем используется структура сети, предоставляющая линейные границы класса. It uses a network structure that gives linear class boundaries. Она почти примитивна по сегодняшним стандартам, но имеет долгую историю надежной работы и достаточно мала для быстрого изучения. It is almost primitive by today’s standards, but it has a long history of working robustly and is small enough to learn quickly.

Методы опорных векторов SVMs

Методы опорных векторов находят границу, которая разделяет классы с как можно большей шириной. Support vector machines (SVMs) find the boundary that separates classes by as wide a margin as possible. Если два класса нельзя четко разделить, алгоритмы найдут наилучшую границу, которую смогут. When the two classes can’t be clearly separated, the algorithms find the best boundary they can. Как написано в Машинное обучение Azure Studio (классическая модель), SVM двух классов делает это только прямой линией (в SVM-говорить, что в нем используется линейное ядро). As written in Azure Machine Learning Studio (classic), the two-class SVM does this with a straight line only (in SVM-speak, it uses a linear kernel). Так как это выполняется с помощью линейной аппроксимации, время выполнения достаточно мало. Because it makes this linear approximation, it is able to run fairly quickly. Там, где это действительно, — это данные, имеющие более широкие возможности, например текстовые или геномных данные. Where it really shines is with feature-intense data, like text or genomic data. В этих случаях методы опорных векторов позволяют разделить классы быстрее и с меньшей избыточной точностью, чем большинство других алгоритмов; кроме того, они используют небольшой объем памяти. In these cases SVMs are able to separate classes more quickly and with less overfitting than most other algorithms, in addition to requiring only a modest amount of memory.

Типичная граница класса для метода опорных векторов увеличивает ширину границы, разделяющей два класса. A typical support vector machine class boundary maximizes the margin separating two classes

Другой продукт Microsoft Research, двухклассовый локально глубокий метод опорных векторов , представляет собой нелинейный вариант метода опорных векторов, который сохраняет большую часть скорости и эффективного использования памяти линейной версии метода. Another product of Microsoft Research, the two-class locally deep SVM is a non-linear variant of SVM that retains most of the speed and memory efficiency of the linear version. Он идеально подходит для случаев, в которых линейный подход не дает достаточно точных результатов. It is ideal for cases where the linear approach doesn’t give accurate enough answers. Разработчики быстро сохранили задачу, разбивая ее на ряд небольших линейных SVMных проблем. The developers kept it fast by breaking down the problem into a number of small linear SVM problems. Подробнее узнать о том, как они это сделали, можно в полном описании . Read the full description for the details on how they pulled off this trick.

С помощью эффективного расширения нелинейных методов опорных векторов одноклассовый метод опорных векторов проводит границу, которая плотно отделяет весь набор данных. Using a clever extension of nonlinear SVMs, the one-class SVM draws a boundary that tightly outlines the entire data set. Это удобно для обнаружения аномалий. It is useful for anomaly detection. Все новые точки данных, которые выходят далеко за эту границу, достаточно необычны, чтобы обратить на них внимание. Any new data points that fall far outside that boundary are unusual enough to be noteworthy.

Методы Байеса Bayesian methods

Методы Байеса имеют одно очень ценное качество: они не приводят к чрезмерному увеличению точности. Bayesian methods have a highly desirable quality: they avoid overfitting. Для этого они предварительно делают некоторые предположения о вероятном распределении ответа. They do this by making some assumptions beforehand about the likely distribution of the answer. Другим побочным эффектом этого подхода является то, что у этих методов очень мало параметров. Another byproduct of this approach is that they have very few parameters. Классическая версия Машинное обучение Azure Studio имеет алгоритмы Байеса для обеих классификациий (Многоклассовый компьютерс алгоритмом Байеса) и регрессии (Байеса линейная регрессия). The classic version of Azure Machine Learning Studio has Bayesian algorithms for both classification (Two-class Bayes’ point machine) and regression (Bayesian linear regression). Обратите внимание, что в них предполагается, что данные можно разбить прямой линией или сопоставить ей. Note that these assume that the data can be split or fit with a straight line.

С исторической точки зрения точечные машины Байеса были разработаны в Microsoft Research. On a historical note, Bayes’ point machines were developed at Microsoft Research. За ними стоит исключительная теоретическая работа. They have some exceptionally beautiful theoretical work behind them. Заинтересовавшиеся могут ознакомиться с исходной статьей в JMLR и исчерпывающим блогом Криса Бишопа (Chris Bishop). The interested student is directed to the original article in JMLR and an insightful blog by Chris Bishop.

Специализированные алгоритмы Specialized algorithms

При наличии очень конкретной цели вам может повезти со специализированным алгоритмом. If you have a very specific goal you may be in luck. В коллекции Машинное обучение Azure Studio (классической) существуют алгоритмы, специализирующиеся на: Within the Azure Machine Learning Studio (classic) collection, there are algorithms that specialize in:

Обнаружение аномалий на основе анализа первичных компонентов — большинство данных попадает в стереотипное распределение; подозрительными считаются точки, которые значительно отклоняются от этого распределения PCA-based anomaly detection — the vast majority of the data falls into a stereotypical distribution; points deviating dramatically from that distribution are suspect

Набор данных группируется в пять кластеров с использованием K-средних A data set is grouped into five clusters using K-means

Также существует многоклассовая классификация «один-все», которая разбивает проблему классификации класса N на проблемы двухклассовой классификации класса N-1. There is also an ensemble one-v-all multiclass classifier, which breaks the N-class classification problem into N-1 two-class classification problems. Точность, время обучения и свойства линейности определяются используемыми двухклассовыми классификаторами. The accuracy, training time, and linearity properties are determined by the two-class classifiers used.

Два двухклассовых классификатора объединяются вместе для получения трехклассового классификатора. A pair of two-class classifiers combine to form a three-class classifier

Классическая версия Машинное обучение Azure Studio также включает доступ к мощной платформе машинного обучения под названием Vowpal Wabbit. The classic version of Azure Machine Learning Studio also includes access to a powerful machine learning framework under the title of Vowpal Wabbit. Эта платформа пренебрегает приведенной здесь классификацией, так как может решать как классификационные, так и регрессионные задачи и даже обучаться на основе частично неразмеченных данных. VW defies categorization here, since it can learn both classification and regression problems and can even learn from partially unlabeled data. Ее можно настроить для использования любого алгоритма обучения, любой функции потери и любого алгоритма оптимизации. You can configure it to use any one of a number of learning algorithms, loss functions, and optimization algorithms. Эта система изначально разрабатывалась как эффективная, параллельная и очень быстрая. It was designed from the ground up to be efficient, parallel, and extremely fast. Она обрабатывает огромные наборы функций с минимальными усилиями. It handles ridiculously large feature sets with little apparent effort. Запущенная и управляемая Джоном Лэнгфордом из Microsoft Research, Vowpal Wabbit — это «формула один» среди других алгоритмов. Started and led by Microsoft Research’s own John Langford, VW is a Formula One entry in a field of stock car algorithms. С помощью Vowpal Wabbit можно решить не все задачи, но если система подходит для вашей задачи, возможно, стоит потратить время на изучение интерфейса системы. Not every problem fits VW, but if yours does, it may be worth your while to climb the learning curve on its interface. Система также доступна в виде автономного открытого исходного кода на нескольких языках. It’s also available as stand-alone open source code in several languages.

Дальнейшие действия Next Steps

Скачайте наглядную инфографику по основам машинного обучения и ознакомьтесь с популярными алгоритмами, которые используются для ответа на распространенные вопросы о машинном обучении. To download an easy-to-understand infographic overview of machine learning basics to learn about popular algorithms used to answer common machine learning questions, see Machine learning basics with algorithm examples.

Список категорий всех алгоритмов машинного обучения, доступных в Машинное обучение Studio (классическая модель), см. в разделе Инициализация модели в алгоритме машинное обучение Studio (классический) и в справке по модулям. For a list by category of all the machine learning algorithms available in Machine Learning Studio (classic), see Initialize Model in the Machine Learning Studio (classic) Algorithm and Module Help.

Полный алфавитный список алгоритмов и модулей в классической версии Машинное обучение Studio см. в списке модулей машинное обучение Studio (классическая модель) в машинное обучение Studio (классической модели) и в справке по модулям. For a complete alphabetical list of algorithms and modules in the classic version of Machine Learning Studio, see A-Z list of Machine Learning Studio (classic) modules in Machine Learning Studio (classic) Algorithm and Module Help.

Алгоритмы машинного обучения простым языком. Часть 1

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

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

  • Градиентный спуск и линия наилучшего соответствия.
  • Линейная регрессия (включая регуляризацию).
  • Логистическая регрессия.

Прежде всего, давайте разберёмся, в чём разница между алгоритмом и моделью. Хорошее объяснение есть на Quora:

Модель — как автомат с едой, который получает что-то за вход (деньги) и выдаёт какие-то выходные значения (например, газировку)… Алгоритм — это то, как обучается модель принимать решение в зависимости от входных данных. Например, алгоритм на основе ценности денег, которыми вы расплатились в автомате, и стоимости выбранного продукта будет определять, достаточно ли денег для покупки и какую сдачу вы должны получить.

То есть алгоритм — это математическая сила, стоящая за моделью. Одна и та же модель может использовать разные алгоритмы, что и будет их отличать. Алгоритм же без модели — математические уравнения, которые практически ничего не значат.

Градиентный спуск и линия наилучшего соответствия

(Хоть первое и не считается алгоритмом машинного обучения, его понимание важно для понимания того, как происходит оптимизация алгоритмов)

И вот объяснения:

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

Скажем, у тебя есть большой список роста и веса людей, которых ты знаешь, и тебе нужно каким-то образом отобразить данные на графике. Это будет выглядеть как-то так:

Теперь допустим, что проходит соревнование. Его суть заключается в том, что участникам нужно угадать вес человека по его росту. Угадавший получает денежный приз. Кроме того, чтобы оценивать вес человека на глаз, ты бы опиралась на набор данных о твоих знакомых, да?

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

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

Мы ищем эту линию при помощи минимизации так называемой “остаточной суммы квадратов”. Это просто сумма квадратов разности между значением нашей линии и точек, то есть то, насколько точки далеки от линии. Мы получаем всё меньшие значения суммы квадратов, меняя положение линии на графике: нам надо поместить нашу линию куда угодно, главное, чтобы она была как можно ближе к большинству точек.

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

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

Линейная регрессия

Всё просто: линейная регрессия — это то, как мы анализируем силу зависимости между одной переменной (“результирующая переменная”) и одной или несколькими другими переменными (“независимыми переменными”).

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

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

Ещё одна важная деталь: результирующая переменная или то, что меняется с изменением наших других переменных, непрерывна. Что это значит?

Скажем, мы хотим измерить зависимость количества осадков от высоты над уровнем моря в штате Нью-Йорк. Тогда наша результирующая переменная — дождливость, независимая переменная — высота над уровнем моря. Если будем использовать линейную регрессию, то результирующую переменную нужно сформулировать как, например, “сколько дюймов осадков выпадает за определённое количество времени”, а не “дождливо/не дождливо”. Наша результирующая переменная должна быть непрерывной — значит она может быть любым числом (даже дробным).

Самое классное в линейной регрессии — это то, что она может предсказывать, используя линию наилучшего соответствия! Если мы запустим линейную регрессию на нашей задаче, мы можем найти эту линию, как и в градиентном спуске. Затем мы можем применять обученную модель для того, чтобы узнать количество осадков на определённой высоте.

Машинное обучение

Материал из MachineLearning.

Содержание

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

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

Наиболее теоретические разделы машинного обучения объединены в отдельное направление, теорию вычислительного обучения (Computational Learning Theory, COLT).

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

Общая постановка задачи обучения по прецедентам

Дано конечное множество прецедентов (объектов, ситуаций), по каждому из которых собраны (измерены) некоторые данные. Данные о прецеденте называют также его описанием. Совокупность всех имеющихся описаний прецедентов называется обучающей выборкой. Требуется по этим частным данным выявить общие зависимости, закономерности, взаимосвязи, присущие не только этой конкретной выборке, но вообще всем прецедентам, в том числе тем, которые ещё не наблюдались. Говорят также о восстановлении зависимостей по эмпирическим данным — этот термин был введён в работах Вапника и Червоненкиса.

Наиболее распространённым способом описания прецедентов является признаковое описание. Фиксируется совокупность n показателей, измеряемых у всех прецедентов. Если все n показателей числовые, то признаковые описания представляют собой числовые векторы размерности n. Возможны и более сложные случаи, когда прецеденты описываются временными рядами или сигналами, изображениями, видеорядами, текстами, попарными отношениями сходства или интенсивности взаимодействия, и т. д.

Для решения задачи обучения по прецедентам в первую очередь фиксируется модель восстанавливаемой зависимости. Затем вводится функционал качества, значение которого показывает, насколько хорошо модель описывает наблюдаемые данные. Алгоритм обучения (learning algorithm) ищет такой набор параметров модели, при котором функционал качества на заданной обучающей выборке принимает оптимальное значение. Процесс настройки (fitting) модели по выборке данных в большинстве случаев сводится к применению численных методов оптимизации.

Замечание о терминологии. В зарубежных публикациях термин algorithm употребляется только в указанном выше смысле, то есть это вычислительная процедура, которая по обучающей выборке производит настройку модели. Выходом алгоритма обучения является функция, аппроксимирующая неизвестную (восстанавливаемую) зависимость. В задачах классификации аппроксимирующую функцию принято называть классификатором (classifier), концептом (concept) или гипотезой (hypothesys); в задачах восстановления регрессии — функцией регрессии; иногда просто функцией. В русскоязычной литературе аппроксимирующую функцию также называют алгоритмом, подчёркивая, что и она должна допускать эффективную компьютерную реализацию.

Типология задач обучения по прецедентам

Основные стандартные типы задач

  • Обучение с учителем (supervised learning) — наиболее распространённый случай. Каждый прецедент представляет собой пару «объект, ответ». Требуется найти функциональную зависимость ответов от описаний объектов и построить алгоритм, принимающий на входе описание объекта и выдающий на выходе ответ. Функционал качества обычно определяется как средняя ошибка ответов, выданных алгоритмом, по всем объектам выборки.
    • Задача классификации ( >В отличие от стандартной постановки, здесь не требуется выявлять общую закономерность, поскольку известно, что новых тестовых прецедентов не будет. С другой стороны, появляется возможность улучшить качество предсказаний за счёт анализа всей тестовой выборки целиком, например, путём её кластеризации. Во многих приложениях трансдуктивное обучение практически не отличается от частичного обучения.

    • Обучение с подкреплением (reinforcement learning). Роль объектов играют пары «ситуация, принятое решение», ответами являются значения функционала качества, характеризующего правильность принятых решений (реакцию среды). Как и в задачах прогнозирования, здесь существенную роль играет фактор времени. Примеры прикладных задач: формирование инвестиционных стратегий, автоматическое управление технологическими процессами, самообучение роботов, и т.д.
    • Динамическое обучение (online learning) может быть как обучением с учителем, так и без учителя. Специфика в том, что прецеденты поступают потоком. Требуется немедленно принимать решение по каждому прецеденту и одновременно доучивать модель зависимости с учётом новых прецедентов. Как и в задачах прогнозирования, здесь существенную роль играет фактор времени.
    • Активное обучение (active learning) отличается тем, что обучаемый имеет возможность самостоятельно назначать следующий прецедент, который станет известен. См. также Планирование экспериментов.
    • Метаобучение (meta-learning или learning-to-learn) отличается тем, что прецедентами являются ранее решённые задачи обучения. Требуется определить, какие из используемых в них эвристик работают более эффективно. Конечная цель — обеспечить постоянное автоматическое совершенствование алгоритма обучения с течением времени.
      • Многозадачное обучение (multi-task learning). Набор взаимосвязанных или схожих задач обучения решается одновременно, с помощью различных алгоритмов обучения, имеющих схожее внутренне представление. Информация о сходстве задач между собой позволяет более эффективно совершенствовать алгоритм обучения и повышать качество решения основной задачи.
      • Индуктивный перенос (inductive transfer). Опыт решения отдельных частных задач обучения по прецедентам переносится на решение последующих частных задач обучения. Для формализации и сохранения этого опыта применяются реляционные или иерархические структуры представления знаний.
      • Иногда к метаобучению ошибочно относят построение алгоритмических композиций, в частности, бустинг; однако в композициях несколько алгоритмов решают одну и ту же задачу, тогда как метаобучение предполагает, что решается много разных задач.

    Специфические прикладные задачи

    Некоторые задачи, возникающие в прикладных областях, имеют черты сразу нескольких стандартных типов задач обучения, поэтому их трудно однозначно отнести к какому-то одному типу.

    • Формирование инвестиционного портфеля (portfolio selection) — это динамическое обучение с подкреплением, в котором очень важен отбор информативных признаков. Роль признаков играют финансовые инструменты. Состав оптимального набора признаков (портфеля) может изменяться со временем. Функционалом качества является долгосрочная прибыль от инвестирования в данную стратегию управления портфелем.
    • Коллаборативная фильтрация (collaborative filtering) — это прогнозирование предпочтений пользователей на основе их прежних предпочтений и предпочтений схожих пользователей. Применяются элементы классификации, кластеризации и восполнения пропущенных данных. См. также Персонализация и Анализ клиентских сред.

    Приложения

    Целью машинного обучения является частичная или полная автоматизация решения сложных профессиональных задач в самых разных областях человеческой деятельности. Машинное обучение имеет широкий спектр приложений:

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

    Подходы и методы

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

    Разделение методов «по подходам» довольно условно. Разные подходы могут приводить к одной и той же модели, но разным методам её обучения. В некоторых случаях эти методы отличаются очень сильно, в других — совсем немного и «плавно трансформируются» друг в друга путём незначительных модификаций.

    Статистическая классификация

    В статистике решение задач классификации принято называть дискриминантным анализом.

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

    Параметрическое оценивание плотности

    Непараметрическое оценивание плотности

    Оценивание плотности как смеси параметрических плотностей

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

    Другие теоретико-вероятностные и статистические подходы:

    Классификация на основе сходства

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

    Метрические алгоритмы относятся к методам рассуждения на основе прецедентов (Case Based Reasoning, CBR>. Здесь действительно можно говорить о «рассуждениях», так как на вопрос «почему объект u был отнесён к классу y?» алгоритм может дать понятный эксперту ответ: «потому, что имеются прецеденты — схожие с

    ним объекты, принадлежащие классу y», и

    предъявить список этих прецедентов.

    Наиболее известные метрические алгоритмы классификации:

    Классификация на основе разделимости

    Большая группа методов классификации основана на явном построении разделяющей поверхности в пространстве объектов. Из них чаще всех применяются Линейные классификаторы:

    Нейронные сети

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

    Индукция правил (поиск закономерностей)

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

    Кластеризация

    Регрессия

    Алгоритмические композиции

    Сокращение размерности

    Выбор модели

    Байесовский вывод

    На середину 2020 года лидирующие позиции в мире статистической обработки информации занимает R, который, в частности, содержит обширный набор пакетов для машинного обучения.

    Нейронные сети: нейронная сеть с одним скрытым слоем реализована в пакете nnet (поставляется в составе R). Пакет RSNNS предлагает интерфейс к Stuttgart Neural Network Simulator (SNNS). Интерфейс к библиотеке FCNN позволяет расширяемые пользователем искусственные нейронные сети в пакете FCNN4R.

    Рекурсивное разделение: модели с древовидной структурой для регрессии, классификации и анализа дожития, следующие идеям в документации CART, реализованы в пакетах rpart и tree (поставляется с R). Пакет rpart рекомендуется для вычислений подобных CART-деревьям. Обширный набор инструментов алгоритмов разделения доступен в пакете Weka, RWeka обеспечивает интерфейс этой реализации, включая J4.8-вариант C4.5 и M5. Кубиxческий пакет подгоняет модели, основанными на правилах (подобными деревьям) с линейными регрессионными моделями в терминальных листах, основанных на коррекции наблюдений и бустинге. Пакет C50 может подогнать деревья классификации C5.0, модели, основанные на правилах и их версиях бустинга.

    Два рекурсивных алгоритма разделения с несмещенным выбором переменной и статистическим критерием остановки реализованы в пакете party. Функция ctree () основывается на непараметрических условных процедурах вывода для тестирования независимости между откликом и каждой входной переменной, тогда как mob() может использоваться, чтобы разделить параметрические модели. Расширяемые инструменты для визуализации двоичных деревьев и распределений узла отклика также доступны в пакете party.

    Модели древовидной структуры с изменяемыми коэффициентами реализованы в пакете vcrpart.

    Для задач с двоичными входными переменными пакет LogicReg реализует логистическую регрессию. Графические инструменты для визуализации деревьев доступны в пакете maptree.

    Деревья для моделирования длящихся данных посредством случайных эффектов предлагаются пакетом REEMtree. Разделение смешанных моделей выполнено RPMM. Вычислительная инфраструктура для представления деревьев и объединенных методов для предсказания и визуализации реализована в partykit. Эта инфраструктура используется пакетом evtree, чтобы реализовать эволюционное приобретение знаний о глобально оптимальных деревьях. Наклонные деревья доступны в пакете oblique.tree.

    Случайные леса: ссылка на реализованный алгоритм случайного лесного для регрессии и классификации доступна в пакете randomForest. У пакета ipred есть бэггинг (укладывание в мешки) для регрессии, классификации и анализа дожития, а также связывания, комбинации многоуровневых моделей через приобретение знаний ансамблем. Кроме того, вариант случайного леса для переменных отклика, измеренных в произвольных весах на основе условных деревьев вывода, реализован в пакете party. Пакет randomForestSRC реализует объединенную обработку случайных лесов Бреимена для задач дожития, регрессии и классификации. Квантильные регрессионные леса в пакете quantregForest позволяют квантилей числового отклика на исследовательских переменных с помощью подхода случайного леса. Для двоичных данных LogicForest — лес деревьев логистической регрессии (пакет LogicReg. Пакеты varSelRF и Boruta фокусируются на выборе переменной по средним значениям для алгоритмов случайных лесов. Кроме того, пакеты ranger и Rborist предлагают интерфейсы R к быстрым реализациям C++ случайных лесов.

    Методы регуляризации и усечения: регрессионные модели с некоторым ограничением на оценки параметров могут быть подогнаны с использованием пакетов lasso2 и lars. Lasso с одновременными обновлениями для групп параметров (groupwise лассо) доступно в пакете grplasso; grpreg пакет реализует много других моделей со групповыми штрафами, такими как группа MCP группа SCAD. Путь регуляризации L1 для обобщенных линейных моделей и моделей Cox может быть получен из функций, доступных в пакете glmpath, всем лассо или эластично-сетевом пути регуляризации (также в elasticnet) для линейной регрессии, логистической, и регрессионные полиномные модели могут быть получены из пакета glmnet. Пакет со штрафами предоставляет альтернативную реализацию лассо (L1), и гребенки (L2) для шрафовки регрессионных моделей (и GLM и модели Cox). Пакет RXshrink может использоваться, чтобы идентифицировать и вывести на экран ТРАССИРОВКИ для указанного пути усечения и определения надлежащей степени усечения. Полупараметрические аддитивные модели опасностей под штрафами лассо предлагаются пакетом ahaz. Обобщение метода уменьшения Лассо для линейной регрессии называют ослабленным лассо и доступно в пакете relaxo. Проекция Фишера LDA с дополнительным штрафом ЛАССО, чтобы произвести прореженные решения реализована в пакете penalizedLDA. Прореженный классификатор центроидов и утилиты для анализов экспрессии гена реализованы в пакете pamr. Реализация многомерных адаптивных регрессии сплайнов доступна в пакете earth. Выбор переменной посредством выбора клона в SVMs в оштрафованных моделях (SCAD или штрафы L1) реализован в пакете penalizedSVM. Различные формы оштрафованного дискриминантного анализа реализованы в пакетах hda, rda, и sda. Пакет LiblineaR предлагает интерфейс библиотеке LIBLINEAR. пакет ncvreg подгоняет моделям линейной регрессии и логистической регрессии под SCAD и штрафы регрессии MCP, используя координационный алгоритм спуска. Регрессия гребня высокой производительности (т.е. штрафования со многими переменными прогноза) и гетероскедастичные модели эффектов является содержанием пакета bigRR. Реализация методов ограничений для упорядоченной минимизации рисков — доступен пакете bmrm. Также имеется лассо с негауссовским и ошибками гетероскедастичности оценено hdm, вывод на низко-размерных компонентах регрессии Лассо и предполагаемых эффектов обработки в высоко-размерной установке. Пакет SIS реализует уверенный независимый отбор в линейной обобщенной модели и модели Cox.

    Бустинг (усиление): различные формы градиентного бустингаа реализованы в пакете gbm (бустинг, основанный на дереве функциональный градиентный спуск). Оптимизируется функция потерь Hinge с помощью бустинга, реализованного в пакете bst. Можно использовать пакет GAMBoost для подгонки обобщенных аддитивных моделей алгоритмом бустинга. Расширяемая платформа бустинга для обобщенных линейных, аддитивных и непараметрических моделей доступна в пакете mboost. Основанный на правдоподобии бустинг для моделей Cox реализовано в CoxBoost и для смешанных моделей в GMMBoost. Можно подогнать модели GAMLSS, используя бустинг gamboostLSS.

    Методы опорных векторов и ядерные методы: функция svm () из e1071 предлагает интерфейс библиотеке LIBSVM, и пакет kernlab реализует гибкую платформу для ядерного обучения (включая SVMs, RVMs и другие алгоритмы ядерного обучения). Интерфейс к реализации SVMlight (только для one-all классификации) дан в пакете klaR. Соответствующая размерность в пространствах признаков ядра может быть оценена, используя rdetools, который также предлагает процедуры для выбора модели и предсказание.

    Байесовские Методы: Bayesian Additive Regression Trees (BART), где заключительная модель определена с точки зрения суммы по многим слабым ученикам (мало чем отличающийся от методов ансамбля), реализованы в пакете BayesTree. Байесовская нестационарная, полупараметрическая нелинейная регрессия и проектирование с помощью древовидного Гауссовского процесса, включая Байесовский CART и древовидной линейные модели, доступны в пакете tgp.

    Оптимизация с использованием генетических алгоритмов: Пакеты rgp и rgenoud предлагают подпрограммы оптимизации на основе генетических алгоритмов. Пакет Rmalschains реализует имитационные алгоритмы с цепочками локального поиска, которые являются специальным типом эволюционных алгоритмов, комбинируя генетический алгоритм устойчивого состояния с локальным поиском для реально оцененной параметрической оптимизации.

    Правила ассоциации: Пакет arules обеспечивает обе структуры данных для эффективной обработки прореженных двоичных данных, а также интерфейсов к реализациям Apriori, и Eclat для интеллектуальной обработки частотных наборов элементов, максимальных частотных наборов элементов, замкнутых частотных наборов элементов и правила ассоциации.

    Системы, основанные на нечетких правилах: пакет frbs реализует стандартные методы для изучения систем, основанных на нечетких правилах для регрессии и классификации. Пакет RoughSets содержит всесторонние реализации грубой теории множеств (RST) и нечеткой грубой теории множеств (FRST) в одном пакете.

    Выбор и проверка модели: пакет e1071 содержит функцию настройки tune() для настройки параметров, а функция errorest () (ipred) может использоваться для оценки коэффициента ошибок. Параметр стоимости C для методов опорных векторов может быть выбран, использовав функциональность пакета svmpath. Функции для анализа ROC и другие методы визуализации для сравнения классификаторов доступны в пакете ROCR. Пакеты hdi и stabs реализуют выбор устойчивости для диапазона моделей, hdi также предлагает другие процедуры вывода в высоко-размерных моделях.

    Другие процедуры: очевидные классификаторы определяют количество неопределенности по поводу класса тестовых образцов, используя функцию mass Dempster-Shafer в пакете evclass. Пакет OneR (Одно Правило) предлагает алгоритм классификации с улучшениями для сложной обработки отсутствующих значений и числовых данных вместе с обширными диагностическими функциями

    Пакеты-обертки: пакет caret содержит функции для подгонки моделей с последующим предсказанием, включая настройку параметров и и мер значимости переменных. Пакет может использовать с различными инструментами по организации параллельных вычислений (например, MPI, NWS и т.д.). В подобном духе пакет mlr предлагает высокоуровневый интерфейс различным пакетам статистически и машинного обучения. Пакет SuperLearner реализует аналогичный набор инструментов. Пакет h2o реализует платформу машинного обучения общего назначения, у которой есть масштабируемые реализации многих популярных алгоритмов, такие как случайный лес, GBM, GLM (с эластичной сетевой регуляризацией), и глубокое обучение (feedforward многоуровневые сети), среди других.


    GUI rattle — графический пользовательский интерфейс, обеспечивающий полный цикл машинного обучения: предварительный анализ данных (data mining), подгонку 6 типов моделей, предсказание по этим моделям и оценку реузльтативности моделей. Все действия пользователя протоколируются на R, что может быть использовано в дальнейшем.

    CORElearn реализует довольно широкий класс машинного обучения.

    Конференции

    Основные международные конференции — ICML, NIPS, ICPR, COLT.

    Международные конференции в странах СНГ — ИОИ.

    Основные всероссийские конференции — ММРО, РОАИ.

    Существуют ли алгоритмы регрессии машинного обучения, которые могут обучать порядковые данные?

    Я имею функцию f (x): R ^ n → R (извините, есть ли здесь способ LaTeX?), И я хочу построить алгоритм машинного обучения, который оценивает f (x) для любой входной точки x, основанный на наборе выборки xs в наборе учебных данных. Если я знаю значение f (x) для каждого x в данных обучения, это должно быть простым — просто выполните регрессию или возьмите средневзвешенное значение близлежащих точек или что-то еще.

    Однако это не то, на что мои учебные данные выглядят. Скорее, у меня есть куча пар точек (x, y), и я знаю значение f (x) — f (y) для каждой пары, но я не знаю абсолютных значений f (x) для любой конкретный х. Кажется, должен быть способ использовать эти данные, чтобы найти приближение к f (x), но я ничего не нашел после некоторого Googling; Есть документы, как это, но они, кажется, предполагают, что данные тренировки приходит в виде набора отдельных меток для каждого объекта, а не имеющие этикетки над парами сущностей.

    Это просто что-то делает, но могу ли я попытаться оценить плотность ядра по f ‘(x), а затем сделать интеграцию, чтобы получить f (x)? Или это безумие, или есть известная лучшая техника?

    Можно предположить, что f является линейным, что упростило бы вещи — если f линейно, мы знаем, что:

    Например, предположим, что вы предполагаете f (x) = , что делает w параметром, который вы хотите изучить. Как бы выглядели квадратичные потери на образец (x, y) и известное различие d?

    Это просто квадрат потерь при z = xy

    Практически вам нужно построить z = xy для каждой пары, а затем изучить f с использованием линейной регрессии над входами z и выводами d.

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

    Как выбирать алгоритмы для машинного обучения

    Разновидности машинного обучения

    Обучение с учителем

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

    Здесь и далее будут описаны методы и алгоритмы, используемые в Azure.

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

    • Классификация. Когда данные используются для прогнозирования категории, обучение с учителем называется классификацией. В этом случае происходит назначение изображения, например «кот» или «собака». Когда есть только два варианта выбора, это называется двухклассовой классификацией. Когда категорий больше, это называется многоклассовой классификацией.
    • Регрессия. Когда прогнозируется значение, например, в случае с курсом акций, обучение с учителем называется регрессией.
    • Фильтрация выбросов. Иногда нужно определить необычные точки данных. Например, при обнаружении мошенничества под подозрение попадают любые странные закономерности трат средств с кредитной карты. Возможных вариантов так много, а примеров для обучения так мало, что практически невозможно узнать, как будет выглядеть мошенническая деятельность. При фильтрации выбросов просто изучается нормальная активность (с помощью архива допустимых транзакций) и находятся все операции с заметными отличиями.

    Обучение без учителя

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

    Обучение с подкреплением

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

    Советы по выбору алгоритма

    Точность

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

    Время обучения

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

    Линейность

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

    Ограничение нелинейных классов — использование алгоритма линейной классификации снижает точность

    Данные с нелинейной закономерностью — при использовании метода линейной регрессии возникают более серьезные ошибки, чем это допустимо

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

    Количество параметров

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

    Также в машинном обучении Azure есть модульный блок подбора параметров, который автоматически пробует все комбинации параметров с указанной вами степенью детализации. Хоть этот способ и позволяет опробовать множество вариантов, однако чем больше параметров, тем больше времени уходит на обучение модели.

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

    Количество признаков

    В некоторых типах данных признаков может быть гораздо больше, чем объектов. Это обычно происходит с данными из области генетики или с текстовыми данными. Большое количество признаков препятствует работе некоторых алгоритмов обучения, из-за чего время обучения невероятно растягивается. Для подобных случаев хорошо подходит метод опорных векторов (см. ниже).

    Особые случаи

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

    • — демонстрирует отличную точность, короткое время обучения и использование линейности.
    ○ — демонстрирует отличную точность и среднее время обучения.

    Алгоритм Точность Время обучения Линейность Параметры Примечание
    Двухклассовая классификация
    Логистическая регрессия 5
    Лес деревьев решений 6
    Джунгли деревьев решений 6 Низкие требования к памяти
    Улучшенное дерево принятия решений 6 Высокие требования к памяти
    Нейронная сеть 9 Возможна дополнительная настройка
    Однослойный перцептрон 4
    Метод опорных векторов 5 Хорошо подходит для больших наборов признаков
    Локальные глубинные методы опорных векторов 8 Хорошо подходит для больших наборов признаков
    Байесовские методы 3
    Многоклассовая классификация
    Логистическая регрессия 5
    Лес деревьев решений 6
    Джунгли деревьев решений 6 Низкие требования к памяти
    Нейронная сеть 9 Возможна дополнительная настройка
    Один против всех См. свойства выбранного двухклассового метода
    Многоклассовая классификация
    Регрессия
    Линейная 4
    Байесова линейная 2
    Лес деревьев решений 6
    Улучшенное дерево принятия решений 5 Высокие требования к памяти
    Быстрые квантильные регрессионные леса 9 Прогнозирование распределений, а не точечных значений
    Нейронная сеть 9 Возможна дополнительная настройка
    Пуассона 5 Технически логарифмический. Для подсчета прогнозов
    Порядковая Для прогнозирования рейтинга
    Фильтрация выбросов
    Методы опорных векторов 2 Отлично подходит для больших наборов признаков
    Фильтрация выбросов на основе метода главных компонент 3 Отлично подходит для больших наборов признаков
    Метод k-средних 4 Алгоритм кластеризации

    Примечания к алгоритму

    Линейная регрессия

    Как мы уже говорили, линейная регрессия рассматривает данные линейно (или в плоскости, или в гиперплоскости). Это удобная и быстрая «рабочая лошадка», но для некоторых проблем она может быть чересчур простой. Здесь вы найдете руководство по линейной регрессии.

    Данные с линейным трендом

    Логистическая регрессия

    Пусть слово «регрессия» в названии не вводит вас в заблуждение. Логистическая регрессия — это очень мощный инструмент для двухклассовой и многоклассовой классификации. Это быстро и просто. Поскольку вместо прямой линии здесь используется кривая в форме буквы S, этот алгоритм прекрасно подходит для разделения данных на группы. Логистическая регрессия ограничивает линейный класс, поэтому вам придется смириться с линейной аппроксимацией.

    Логистическая регрессия для двухклассовых данных всего с одним признаком — граница класса находится в точке, где логистическая кривая близка к обоим классам

    Деревья, леса и джунгли

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

    Дерево принятия решений подразделяет пространство признаков на области с примерно одинаковыми значениями

    Поскольку пространство признаков можно разделить на небольшие области, это можно сделать так, чтобы в одной области был один объект — это грубый пример ложной связи. Чтобы избежать этого, крупные наборы деревьев создаются таким образом, чтобы деревья не были связаны друг с другом. Таким образом, «дерево принятия решений» не должно выдавать ложных связей. Деревья принятия решений могут потреблять большие объемы памяти. Джунгли решающих деревьев потребляют меньше памяти, но при этом обучение займет немного больше времени.

    Улучшенные деревья принятия решений ограничивают количество разделений и распределение точек данных в каждой области, чтобы избежать ложных связей. Алгоритм создает последовательность деревьев, каждое из которых исправляет допущенные ранее ошибки. В результате мы получаем высокую степень точности без больших затрат памяти. Полное техническое описание смотрите в научной работе Фридмана.

    Быстрые квантильные регрессионные леса — это вариант деревьев принятия решений для тех случаев, когда вы хотите знать не только типичное (среднее) значение данных в области, но и их распределение в форме квантилей.

    Нейронные сети и восприятие

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

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

    Границы, изучаемые нейронными сетями, бывают сложными и хаотичными

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

    Методы опорных векторов

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

    Стандартная граница класса опорной векторной машины увеличивает поле между двумя классами

    Еще один продукт от Microsoft Research — двухклассовые локальные глубинные методы опорных векторов. Это нелинейный вариант методов опорных векторов, который отличается скоростью и эффективностью памяти, присущей линейной версии. Он идеально подходит для случаев, когда линейный подход не дает достаточно точных ответов. Чтобы обеспечить высокую скорость, разработчики разбивают проблему на несколько небольших задач линейного метода опорных векторов. Подробнее об этом читайте в полном описании.

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

    Байесовские методы

    Байесовские методы отличаются очень нужным качеством: они избегают ложных связей. Для этого они заранее делают предположения о возможном распределении ответа. Также для них не нужно настраивать много параметров. Машинное обучение Azure предлагает Байесовские методы как для классификации (двухклассовая классификация Байеса), так и для регрессии (Байесова линейная регрессия). При этом предполагается, что данные можно разделить или расположить вдоль прямой линии.

    Кстати, точечные машины Байеса были разработаны в Microsoft Research. В их фундаменте лежит великолепная теоретическая работа. Если вас заинтересует эта тема, читайте статью в MLR и блог Криса Бишопа (Chris Bishop).

    Особые алгоритмы

    Если вы преследуете конкретную цель, вам повезло. В коллекции машинного обучения Azure есть алгоритмы, которые специализируются в прогнозировании рейтингов (порядковая регрессия), прогнозирование количества (регрессия Пуассона) и выявлении аномалий (один из них основан на анализе главных компонентов, а другой — на методах опорных векторов). А еще есть алгоритм кластеризации (метод k-средних).

    Выявление аномалий на основе PCA — огромное множество данных попадает под стереотипное распределение; под подозрение попадают точки, которые сильно отклоняются от этого распределения

    Набор данных разделяется на пять кластеров по методу k-средних

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

    Два двухклассовых классификатора формируют трехклассовый классификатор

    Кроме того, Azure предлагает доступ к мощной платформе машинного обучения под названием Vowpal Wabbit. VW отказывается от категоризации, поскольку может изучить проблемы классификации и регрессии и даже обучаться от частично помеченных данных. Вы можете выбрать любой из алгоритмов обучения, функций потерь и алгоритмов оптимизации. Эта платформа отличается эффективностью, возможностью параллельного выполнения и непревзойденной скоростью. Она без труда справляется с большими наборами данных. VW была запущена Джоном Лэнгфордом (John Langford), специалистом из Microsoft Research, и является болидом «Формулы-1» в океане серийных автомобилей. Не каждая проблема подходит для VW, но если вы считаете, что это верный для вас вариант, то затраченные усилия обязательно окупятся. Также платформа доступна в виде автономного открытого исходного кода на нескольких языках.

    Мастер Йода рекомендует:  Создание и удаление БД в MS SQL Server
Добавить комментарий