вторник, 7 августа 2012 г.

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






Метод опорных векторов с примерами на R | О программировании, алгоритмах и не только

Жена посылает мужа-программиста в магазин и говорит, купи батон колбасы, а если будут яйца - возьми десяток. Он в магазине: У Вас яйца есть? -Есть -Тогда дайте десять батонов колбасы..

Метод опорных векторов с примерами на R

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

Итак, в чем же состоит идея метода опорных векторов? Давайте, сначала рассмотрим очень простой случай. Предположим, что у нас есть множество точек на плоскости, часть которых относится к классу A, а другая часть к классу B и есть точки класс которых нужно определить. Задачу такого рода, по-научному можно определить как задачу классификации, причем, для её решения, нужен алгоритм обучения с учителем. Метод опорных векторов как раз подходит именно для таких задач.

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

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

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

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

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

source




Комментариев нет:

Отправить комментарий