Методы классификации

Preview:

DESCRIPTION

Семинар прошел в московском хакспейсе Neuron в августе 2012.

Citation preview

Методы классификации

Андрей Федоровскийfedorovsky@gmail.com

Что такое классификация?

Классификация – обучение с учителем.

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

А. Федоровский Методы классификации

Примеры применения

Распознавание символовАнтиспамКатегоризация текстовАнализ профилей пользователейПравила выдачи кредита

А. Федоровский Методы классификации

Постановка задачи

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

А. Федоровский Методы классификации

Выбобр признаков

Объекты обладают набором признаков.

Для текстовых документов есть два подхода:1) Bag of words: каждый документ рассматривается

как мультимножество термов.2) Вектора в пространстве признаков .

А. Федоровский Методы классификации

Байес? Нет, спасибо.

Классика, но работает не очень эффективно.Если интересно – он описан в Википедии:http://ru.wikipedia.org/wiki/Наивный_байесовский_классификатор

А. Федоровский Методы классификации

K ближайших соседей

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

А. Федоровский Методы классификации

Метрики:

K ближайших соседей

• K можно и нужно настраивать. Можно автоматически, тогда это простейшая задача оптимизации.

• Если самым близким соседям приписать бОльшие веса, качество вырастет.

• Нет затрат на фазу построения.

Проблемы:• Разные классы при разных k.• Поиск ближайших – перебор всех за O(dN).

http://simsearch.yury.name/references.html• При очень больших d понижается точность. Надо

снижать размерность.

А. Федоровский Методы классификации

Предобработка данных

Как снизить размерность, если мы имеем документы как вектора в пространстве термов?

Выбирать только «нужные» слова.• Стоп-слова• Низкочастотный шум• Веса для слов в важных зонах документа

Есть и продвинутые техники: • Information Gain термов, • feature extraction.

А. Федоровский Методы классификации

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

А. Федоровский Методы классификации

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

узлов.

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

Энтропия X относительно свойства – равномерность распределения его элементов по значениям этого свойства., где .Для разделения выбирается признак А со значениями , максимизирующий Information Gain:, где – подмножество всех элементов X, у которых признак .Если все элементы некоторого узла принадлежат одному классу, этот узел считаем листовым. Остальные узлы продолжаем разбивать, пока не останутся только листовые.

А. Федоровский Методы классификации

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

Темпер: 4/1, 2/0 Ветер: 2/1, 2/2Осадки: 2/1, 3/1 Влажно: 2/1, 3/1У температуры наивысший Information gain.У ветра – наоборот.

А. Федоровский Методы классификации

Темпер. Ветер Осадки Влажно Хорошо?

Выс Нет Нет Да Нет

Низ Есть Есть Нет Нет

Низ Нет Есть Да Нет

Выс Нет Есть Нет Да

Выс Есть Нет Нет Да

Выс Нет Нет Нет Да

Выс Есть Нет Да Да

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

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

• Если есть признак с очень большим числом значений, то IG будет работать плохо, лучше выбрать GainRatio или Gini. Но это не наш случай.

С5.0 (наследник C4.5, ID3) – GNU реализация DT.http://rulequest.com/see5-info.htmlЕсть множество кардинально ускоряющих эвристик.

А. Федоровский Методы классификации

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

Построить дерево () { Если все объекты из принадлежат одному классу, закончить. Посчитать IG для каждого признака Выбрать признак A с максимальным IG for (j=1; j<q; j++) { Построить дерево () }}

А. Федоровский Методы классификации

Pruning

Переобучение (overfitting) – подгонка параметров под особенности тестовой выборки. На реальных данных качество будет сильно хуже.

Validation set – независимая выборка, на которой не идет обучение, но тестируется качество.

Pruning – обрезка ветвей дерева, пока качество на validation set растет.

А. Федоровский Методы классификации

Вопрос

Деревья решений – слабый классификатор.Почему же его используют?

А. Федоровский Методы классификации

BoostingAdaboost для бинарной* классификации:Пусть у нас есть семейство слабых классификаторов . Давайте построим общий классификатор на их основе.

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

А. Федоровский Методы классификации

* Здесь в главе 7.2 чуть более громоздкое обобщение на несколько классов:http://www.boosting.org:10080/boosting.org/papers/MeiRae03.pdf/at_download/file

BoostingИтак, каждому из объектов зададим на 0 шаге важность . На шаге выбираем лучший для текущих классификатор:

Вычисляем вес в итоговой сумме на основе ошибки :

Корректируем важность объектов:

Нормирующий множитель выбран так, чтобы .Добавляем слагаемое в общий классификатор:

А. Федоровский Методы классификации

Boosting

AdaBoost:

А. Федоровский Методы классификации

Random forest

Тоже строится классификатор на основе набора слабых деревьев.На каждом шаге 1…q из N объектов выбирается N же, но с повторениями. В результате случайная часть объектов в выборку не попадет.Строим полностью, без прунинга, дерево, но не для всех d признаков, а для заранее выбранного .Также используются критерии IG/Gini.

DT+Boosting и Random Forest генерируют вполне сильные классификаторы. Даже на основе пней.

А. Федоровский Методы классификации

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

Будем искать линейный классификатор

А. Федоровский Методы классификации

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

А. Федоровский Методы классификации

Будем искать линейный классификатор

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

А. Федоровский Методы классификации

Будем искать линейный классификатор

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

А. Федоровский Методы классификации

Будем искать линейный классификатор

Какой же выбрать?

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

А. Федоровский Методы классификации

Будем искать линейный классификатор

Какой же выбрать?Обратим внимание на ширину разделяющей полосы.

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

А. Федоровский Методы классификации

Будем искать линейный классификатор

Ищем гиперплоскость с максимальной шириной разделяющей полосы.

SVM: линейно разделимый случай

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

А. Федоровский Методы классификации

Решение сложное. Реализация – SVMlight, libSVM.

SVM: штрафы за ошибки

Реальные данные почти всегда линейно неразделимы.

Добавим в оптимизационный функционал слагаемое с величиной штрафов.

А. Федоровский Методы классификации

SVM: штрафы за ошибки

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

А. Федоровский Методы классификации

SVM: ядра

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

А вот зачем мы это сделали: http://www.youtube.com/watch?v=3liCbRZPrZA

А. Федоровский Методы классификации

Мультиклассовая классификация

Что делать, если алгоритм спроектирован под бинарную классификацию, а классов несколько?

• Каждый против всех: бинарных задач • Каждый против каждого: бинарных задач

вида • Турнир на выбывание: бинарных задач вида .

Победитель выходит в следующий тур.

А. Федоровский Методы классификации

Онлайновость

Добавление новых объектов в обучающую выборку без пересчета всей коллекции.

Оценка объекта на лету за малое время.

kNN? SVM? DT? Boost? RF?

А. Федоровский Методы классификации

Переобучение

Training set, validation set, test set.Уменьшение размерности пространства признаков: аналог прунинга.Cross-validation: training set делится на 10 частей. На каждом шаге одна из них является validation set, а на остальных идет обучение. Потом берется средняя оценка.

А. Федоровский Методы классификации

Выбор метода

А. Федоровский Методы классификации

kNN kNN+веса

DT+Pruning

DT(пни)+Boosting

RF SVM+ штрафы

SVM+ ядра

Качество

Скорость работы

Скорость построения

0 0

Устойчивость к выбору н.у. Настройка

параметров, valid. set размер пня,

вид выбора признаков

ядра

Мультикласс. да да обобщ. обобщ. обобщ. нет нет

Онлайн да да нет нет нет нет нет

Памятка

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

А. Федоровский Методы классификации

Вопросы?

Андрей Федоровскийfedorovsky@gmail.com

Recommended