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

