Метод Парзеновского окна (пример)

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 37: Строка 37:
Скачать листинги алгоритмов можно здесь [http://mlalgorithms.svn.sourceforge.net/viewvc/mlalgorithms/ParzenWindow/ parzenclassification.m,slidingcontrol.m,fqual.m]
Скачать листинги алгоритмов можно здесь [http://mlalgorithms.svn.sourceforge.net/viewvc/mlalgorithms/ParzenWindow/ parzenclassification.m,slidingcontrol.m,fqual.m]
== Смотри также ==
== Смотри также ==
 +
 +
* [[Метод ближайших соседей]]
 +
* [[Многомерная случайная величина]]
== Литература ==
== Литература ==

Версия 12:06, 19 мая 2009

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

Содержание

Постановка задачи разделения классов методом парзеновского окна

Пусть у нас задана выборка \{(\mathbf{x}_i,y_i)\}_{i=1}^m, где X^m = \{\mathbf{x}_i\}_{i=1}^m - множество объектов, а Y^m = \{\mathbf{y}_i\}_{i=1}^m - множество объектов на этих ответах. Кроме того, задан объект x_0б который небоходимо классифицировать методом парзеновского окна. Задача состоит в том, что бы подобрать параметр h - ширину окна и тип ядра таким образом,что бы при классификации с помощью метода парзеновского окна ошибок было бы как можно меньше:

a(x;X^{l},h)=\arg \max_{y\in Y} \lambda_{y} \sum_{i=1}^l {[}y_i = y{]} K(\frac{p(x,x_i)}{h})


Алгоритм отыскания оптимальных параметров

Для того, чтобы найти ширину окна и наиболее подходящий нам тип ядра, мы воспользуемся принципом максимального правдоподобия и исключением объектов по одному (leave-one-out,LOO):

h^{*}=\arg{ } \max_{h} \sum_{i=1}^l \log \hat{p}_h (x_i;X^{m}{/}x_i)

То есть, мы будем восстанавливать значение класса для одного объекта из нашей выборки и максимизировать логарифм количества правильных ответов при исключении по очереди всех объектов выборки. Мы можем максимизоровать это значение по двум параметрам - ширине окна h и типу ядра. Ширину окна мы можем подобрать из некоторого диапазона, полученного из эмпирических предположений. Ядро можно выбрать из набора общеизвестных ядер. В моей работе рассматривались несколько основных типов ядер:

# ядро K(r) формула
1 Епанечникова E(r)=\frac{3}{4}(1-r^2){[}{|}r{|}<=1{]}
2 Квартическое Q(r)=\frac{15}{16}(1-r^2)^2{[}{|}r{|}<=1{]}
3 Треугольное T(r)=(1-{|}r{|}){[}{|}r{|}<=1{]}
4 Гауссовское G(r)=(2\pi)^(-\frac{1}{2})exp(-\frac{1}{2}r^2)
5 Прямоугольное \Pi(r)=\frac{1}{2}{|}r{|}<=1{]}

Получившееся выражение имеет достаточно понятный вид:

(h^{*},K(r))=\arg{ } \max_{K(r)} \max_{h} \sum_{i=1}^l \log \hat{p}_h (x_i;X^{m}{/}x_i)

Вычислительный эксперимент

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


Исходный код

Скачать листинги алгоритмов можно здесь parzenclassification.m,slidingcontrol.m,fqual.m

Смотри также

Литература

  • К. В. Воронцов, Лекции по линейным алгоритмам классификации


Данная статья является непроверенным учебным заданием.
Студент: Участник:Зайцев Алексей
Преподаватель: Участник:В.В. Стрижов
Срок: 28 мая 2009

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Замечания

Личные инструменты