Метод Парзеновского окна (пример)
Материал из 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 в учебном процессе. |