Погрузитесь в мир технологий, и они сформируют наше будущее. Сегодня компьютеры могут видеть, слышать и учиться. Соглашаться? Какова бы ни была точка зрения, добро пожаловать в будущее. Машинное обучение - это наука или метод, при котором компьютер учится на поведении или опыте, а не запрограммирован для этого. Системы могут реагировать и учиться на опыте, который называется автоматизацией системы. Машинное обучение, подмножество искусственного интеллекта, включает определенные алгоритмы для достижения своего результата. Мы обязаны выполнять множество операций с помощью предоставленной модели машинного обучения, мы располагаем правильным набором данных и надежными эффективными алгоритмами. Одна из таких категорий алгоритмов - это машины опорных векторов. В этой статье мы рассмотрим различные аспекты алгоритмов SVM, а также математику, лежащую в основе этого алгоритма опорных векторов.

Эта статья выглядит следующим образом:

  • Обзор машинного обучения.
  • Изучение машин опорных векторов
  • Работа SVM: запуск и внедрение классификатора SVM
  • Реальное применение SVM.

Обзор машинного обучения

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

Давайте рассмотрим некоторые примеры, которые докажут, что чем больше размер используемых данных, тем лучше модель, а также использование правильных алгоритмов может улучшить скорость прогнозирования модели. Совершенно очевидно, что каждый может знать о вредоносных программах, которые присутствуют в программном обеспечении приложений Android и приводят к пагубным последствиям. Чтобы избавиться от этого вредоносного ПО для Android, реализуются модели машинного обучения, в которых на машину необходимо передавать большие наборы данных. Большая выборка доступных данных была передана в модель машинного обучения, которая содержит все различные типы вредоносных программ, так что модель явно извлекает уроки из этого во время обучения данных, а затем соответственно классифицирует данные тестирования или приложения на хорошее ПО или вредоносное ПО на основе обучения. . Более того, когда в этой модели используются алгоритмы машины опорных векторов, скорость прогнозирования увеличивается по сравнению с другими алгоритмами, такими как случайные леса, дерево решений и K-ближайший сосед, которые имеют более низкую скорость обнаружения вредоносных программ, чем алгоритм машины опорных векторов.

Типы машинного обучения

Машинное обучение в основном делится на три типа. Они есть:

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

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

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

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

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

Изучение машин опорных векторов

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

Привилегия SVM:

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

Работа SVM: запуск и внедрение классификатора SVM

SVM в линейно разделяемых данных

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

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

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

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

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

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

При делении на 2 получаем:

Граница нашего окончательного решения:

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

Код:

Чтобы представить себе данные, мы возьмем набор данных о раке молочной железы. Этот набор данных предоставлен Университетом Висконсин-Мэдисон Калифорнийскому университету в Ирвине (UCI) в качестве пожертвования. Наборы данных уже структурированы и организованы. После этого из Scikit Learn мы импортируем предварительную обработку, чтобы предварительно обработать данные или удалить любой пустой блок или значение NaN. Импорт панд, перекрестная проверка и поддержка векторных машин.

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

Вывод:

0.978571428571

[2]

Объяснение: в зависимости от выборки скорость предсказания составляет 97,8% и принадлежит к классу 2. Преимущество SVM, реализованного на этом наборе данных, заключается в том, что хотя другие алгоритмы могут достигать такой же скорости предсказания, но SVM может предсказывать он намного быстрее с очень низким временем выполнения, поэтому SVM применяются к сложным данным.

SVM в линейных неотделимых данных и нелинейных плоскостях

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

.

Устранение проблем с линейными неотделимыми данными и нелинейной плоскостью:

Ядра SVM

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

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

На рисунке 1: Данный набор данных с одной характеристикой x1, и набор данных также не является линейно разделимым. Но когда добавляется дополнительная функция как x2 = (x1) 2, набор данных 2D теперь линейно разделяется.

Код: это делается в Scikit Learn на наборе данных о лунах.

из импорта sklearn.datasets make_moons

из импорта sklearn.pipeline конвейера

из sklearn.preprocessing import PolynomialFeatures

polynomial_svm_clf = конвейер ((

(«Poly_features», PolynomialFeatures (степень = 3)), («масштабатор», StandardScaler ()),

(«Svm_clf», LinearSVC (C = 10, loss = «шарнир»))

))

polynomial_svm_clf.fit (X, y)

Рисунок 2. Классификатор линейной SVM с использованием полиномиальных функций.

Полиномиальное ядро ​​

Полиномиальное ядро ​​- это оптимизированная форма линейного ядра, способная различать искривленное пространство или нелинейное входное пространство.

Тестирование кода на наборе данных о спутниках

из импорта sklearn.svm SVC poly_kernel_svm_clf = Pipeline ((

(«Скейлер», StandardScaler ()),

(«Svm_clf», SVC (ядро = «поли», степень = 3, coef0 = 1, C = 5))

))

poly_kernel_svm_clf.fit (X, y)

Ядро Gaussian RBF

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

Код:

rbf_kernel_svm_clf = конвейер (((«масштабатор», StandardScaler ()),

(«Svm_clf», SVC (ядро = «rbf», гамма = 5, C = 0,001))

))

rbf_kernel_svm_clf.fit (X, y)

Рисунок 5. Классификаторы SVM с использованием ядра RBF

Реальное применение машины опорных векторов

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

  • Распознавание лиц. SVM сначала классифицирует и идентифицирует изображения лиц и изображения без лица. Обучающие данные, содержащие n x n пикселей, подаются в модель SVM, состоящую из двухклассных изображений лица (+1) и изображений без лица (-1). Основываясь на этом, он извлекает атрибуты из каждого пикселя, будь то пиксель лица или не-лица, и, наконец, создает границу из-за яркости пикселя вокруг лиц и, следовательно, классифицирует каждое изображение одинаково.
  • Классификации изображений. SVM - это очень мощный алгоритм классификации изображений на основе данных обучения, которым были присвоены метки набора данных. Поскольку классификатор SVM уже обучен определенному количеству данных, он может классифицировать новые неизвестные тестовые данные. Он также включает перетасовку данных и перекрестную проверку.
  • Распознавание рукописного ввода: SVM можно использовать для идентификации и тщательной проверки рукописных документов на предмет их проверки или подлинности. Рукописные символы, которые используются в процессе ввода данных, подписи лиц, документации и т. Д., Проверяются SVM.

Заключение

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