Метод Парзеновского окна (пример)
Материал из MachineLearning.
(→Постановка задачи разделения классов методом парзеновского окна) |
|||
Строка 4: | Строка 4: | ||
Задача состоит в том, что бы подобрать параметр <tex>h</tex> - ширину окна и тип ядра таким образом,что бы при классификации с помощью метода парзеновского окна ошибок было бы как можно меньше: | Задача состоит в том, что бы подобрать параметр <tex>h</tex> - ширину окна и тип ядра таким образом,что бы при классификации с помощью метода парзеновского окна ошибок было бы как можно меньше: | ||
<center><tex>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})</tex></center> | <center><tex>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})</tex></center> | ||
+ | |||
+ | |||
+ | == Алгоритм отыскания оптимальных параметров == | ||
+ | Для того, чтобы найти ширину окна и наиболее подходящий нам тип ядра, мы воспользуемся принципом максимального правдоподобия и исключением объектов по одному (leave-one-out,LOO): | ||
+ | <center><tex>h^{*}=\arg{ } \max_{h} \sum_{i=1}^l \log \hat{p}_h (x_i;X^{m}{/}x_i) </tex></center> | ||
+ | То есть, мы будем восстанавливать значение класса для одного объекта из нашей выборки и максимизировать логарифм количества правильных ответов при исключении по очереди всех объектов выборки. Мы можем максимизоровать это значение по двум параметрам - ширине окна <tex>h</tex> и типу ядра. Ширину окна мы можем подобрать из некоторого диапазона, полученного из эмпирических предположений. Ядро можно выбрать из набора общеизвестных ядер. В моей работе рассматривались несколько основных типов ядер: | ||
+ | {| class="wikitable" style="text-align: center;" | ||
+ | |- bgcolor="#cccccc" | ||
+ | ! width=10 % |# | ||
+ | ! width=40 % |ядро <tex>K(r)</tex> | ||
+ | ! width=50 % |формула | ||
+ | |- | ||
+ | | '''1''' || Епанечникова || <tex>E(r)=\frac{3}{4}(1-r^2){[}{|}r{|}<=1{]}</tex> | ||
+ | |- | ||
+ | | '''2''' || Квартическое || <tex>Q(r)=\frac{15}{16}(1-r^2)^2{[}{|}r{|}<=1{]}</tex> | ||
+ | |- | ||
+ | | '''3''' || Треугольное || <tex>T(r)=(1-{|}r{|}){[}{|}r{|}<=1{]}</tex> | ||
+ | |- | ||
+ | | '''4''' || Гауссовское || <tex>G(r)=(2\pi)^(-\frac{1}{2})exp(-\frac{1}{2}r^2)</tex> | ||
+ | |- | ||
+ | | '''5''' || Прямоугольное || <tex>\Pi(r)=\frac{1}{2}{|}r{|}<=1{]}</tex> | ||
+ | |- | ||
+ | |} | ||
+ | Получившееся выражение имеет достаточно понятный вид: | ||
+ | <center><tex>(h^{*},K(r))=\arg{ } \max_{K(r)} \max_{h} \sum_{i=1}^l \log \hat{p}_h (x_i;X^{m}{/}x_i) </tex></center> | ||
== Вычислительный эксперимент == | == Вычислительный эксперимент == | ||
+ | Вычислительный эксперимент был проведен на реальных и модельных данных. В качестве модельных данных были взяты точки из двух нормальных распределений с разными математическими ожиданиями и дисперсиями (соответственно, были получены два класса объектов). После проведения рядка экспериментов были получены следующие результаты: | ||
+ | |||
== Исходный код == | == Исходный код == |
Версия 11:19, 19 мая 2009
Метод Парзеновского окна принадлежит к непараметрическим методам классификации и представляет собой одну из возможных реализаций байесовского подхода к решению задачи классификации.
Содержание |
Постановка задачи разделения классов методом парзеновского окна
Пусть у нас задана выборка , где
=
- множество объектов, а
=
- множество объектов на этих ответах. Кроме того, задан объект
б который небоходимо классифицировать методом парзеновского окна.
Задача состоит в том, что бы подобрать параметр
- ширину окна и тип ядра таким образом,что бы при классификации с помощью метода парзеновского окна ошибок было бы как можно меньше:
Алгоритм отыскания оптимальных параметров
Для того, чтобы найти ширину окна и наиболее подходящий нам тип ядра, мы воспользуемся принципом максимального правдоподобия и исключением объектов по одному (leave-one-out,LOO):
То есть, мы будем восстанавливать значение класса для одного объекта из нашей выборки и максимизировать логарифм количества правильных ответов при исключении по очереди всех объектов выборки. Мы можем максимизоровать это значение по двум параметрам - ширине окна и типу ядра. Ширину окна мы можем подобрать из некоторого диапазона, полученного из эмпирических предположений. Ядро можно выбрать из набора общеизвестных ядер. В моей работе рассматривались несколько основных типов ядер:
# | ядро | формула |
---|---|---|
1 | Епанечникова | |
2 | Квартическое | |
3 | Треугольное | |
4 | Гауссовское | |
5 | Прямоугольное | |
Получившееся выражение имеет достаточно понятный вид:
Вычислительный эксперимент
Вычислительный эксперимент был проведен на реальных и модельных данных. В качестве модельных данных были взяты точки из двух нормальных распределений с разными математическими ожиданиями и дисперсиями (соответственно, были получены два класса объектов). После проведения рядка экспериментов были получены следующие результаты:
Исходный код
Скачать листинги алгоритмов можно здесь parzenclassification.m,slidingcontrol.m,fqual.m
Смотри также
Литература
- К. В. Воронцов, Лекции по линейным алгоритмам классификации
![]() | Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |