Алгоритм FRiS-СТОЛП

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{Задание|osa|Константин Воронцов|25 января 2010}})
м (Описание алгоритма)
 
(18 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
{{Задание|osa|Константин Воронцов|25 января 2010}}
+
'''Алгоритм FRiS-СТОЛП''' (FRiS-STOLP) - алгоритм отбора [[Эталон|эталонных объектов]] для [[Метрический классификатор|метрического классификатора]] на основе [[FRiS-функция|FRiS-функции]].
 +
 
 +
==Назначение алгоритма==
 +
Пусть дана [[Обучающая выборка|обучающая выборка]] <tex>X^l=(x_i, y_i)_{i=1}^l</tex>, где <tex>x_i</tex> - объекты, <tex>y_i=y^*(x_i)</tex> - классы, которым принадлежат эти объекты. Кроме того, задана [[Метрика|метрика]] <tex>\rho: X \times X \rightarrow \mathbb{R}</tex>, такая, что выполняется [[Гипотеза компактности|гипотеза компактности]].
 +
 
 +
 
 +
==Алгоритм==
 +
===Входные данные===
 +
На вход алгоритм получает [[Обучающая выборка|обучающую выборку]] <tex>X^l=(x_i, y_i)_{i=1}^l</tex>
 +
 
 +
===Результат===
 +
В результате работы алгоритма для каждого класса <tex>y \in Y</tex> строятся множества [[эталонный объект|эталонных объектов]] <tex>\Omega_y \subseteq X</tex>.
 +
 
 +
===Вспомогательные функции===
 +
В алгоритме FRiS-STOLP используются следующие вспомогательные функции:
 +
 
 +
* <tex>NN(u,U)</tex> – возвращает ближайший к <tex>u</tex> объект из множества <tex>U</tex>.
 +
* <tex>FindEtalon(X_y;\Omega)</tex> – исходя из набора уже имеющихся эталонов <tex>\Omega</tex> и набора <tex>X_y</tex> элементов класса <tex>Y</tex>, возвращает новый эталон для класса <tex>Y</tex> (алгоритм приведён ниже):
 +
 
 +
1. '''Для каждого объекта <tex>x \in X_y</tex> вычисляются две характеристики''':
 +
* «обороноспособность» объекта <tex>x</tex>:
 +
<tex>D_x = \frac{1}{\left| X_y \right| -1}\sum_{u \in X_y \setminus x}S \left(u,x | NN(u,\Omega) \right)</tex> <br />
 +
* «толерантность» объекта <tex>x</tex> (количественная оценка, насколько объект <tex>x</tex> в роли эталона
 +
класса <tex>y</tex> «не мешает» эталонам других классов):
 +
<tex>T_x = \frac{1}{\left| X^l \setminus X_y \right|}\left(\sum_{v \in X^l \setminus X_y}S \left(v,x | NN(v,\Omega) \right)\right)</tex> <br />
 +
2. '''На основании полученных характеристик вычисляется «эффективность» объекта <tex>x</tex>''':
 +
<tex>E_x = \lambda D_x + (1-\lambda) T_x</tex> <br />
 +
3. '''Функция FindEtalon возвращает объект <tex>x \in X^l</tex> с максимальной эффективностью''' <tex>E_x</tex>:
 +
<tex>x:=arg\max_{x \in X_y}{E_x}</tex> <br />
 +
 
 +
Параметр <tex>\lambda \in [0,1]</tex> количественно задаёт относительную «важность» характеристик объектов («обороноспособности» и «толерантности»). Может быть выбран, исходя из специфики конкретной задачи.
 +
 
 +
===Описание алгоритма===
 +
Сам алгоритм FRiS-STOLP состоит из следующих шагов:
 +
1. '''Инициализировать начальные множества эталонов'''. Для всех классов <tex>y \in Y</tex>:
 +
<tex>\Omega_y^0:=FindEtalon(X_y,X^l \setminus X_y)</tex> <br />
 +
2. '''Инициализировать искомые множества эталонов'''. Для всех классов <tex>y \in Y</tex>:
 +
<tex>\Omega_y:=FindEtalon(X_y,\bigcup_{c \in Y \setminus y} \Omega_c^0)</tex> <br />
 +
3. '''Повторять пункты 4-6''', пока множество рассматриваемых объектов непусто <tex>\left( X^l \not= \emptyset \right)</tex>: <br />
 +
4. '''Сформировать множество <tex>U</tex> правильно классифицированных объектов''':
 +
<tex>U:=</tex> <tex> \{ x \in X^l | S(x,NN(x_i,\Omega_{y_i})| NN(x_i, \bigcup_{y \not= y_i}{\Omega_y}) > \theta \} </tex>;
 +
5. '''Удалить правильно классифицированные объекты из дальнейшего рассмотрения''': <br />
 +
* '''из множеств эталонов''': для каждого <tex>y \in Y:</tex> <tex>X_y:=X_y \setminus U</tex>;
 +
* '''из обучающей выборки''': <tex>X^l:=X^l \setminus U</tex>; <br />
 +
6. '''Добавить новый эталон для каждого класса <tex>y \in Y</tex>''': <br />
 +
<tex>\Omega_y:=\Omega_y \cup FindEtalon(X_y,\bigcup_{c \in Y \setminus y}{\Omega_c})</tex><br /><br />
 +
7. '''Вернуть искомые множества эталонов''' <tex>\Omega_y</tex> для каждого класса <tex>y \in Y</tex>
 +
 
 +
==Преимущества алгоритма==
 +
 
 +
Алгоритм FRiS-STOLP создаёт в процессе работы сокращенное описание обучающей выборки. Это позволяет сократить расход памяти, избавиться от ошибок и [[выбросы|выбросов]], содержащихся в ней, но при этом сохранить информацию, необходимую для дальнейшего распознавания новых объектов.
 +
 
 +
==См. также==
 +
 
 +
* [[Алгоритм СТОЛП]]
 +
* [[FRiS-функция]]
 +
 
 +
 
 +
{{Задание|osa|Константин Воронцов|21 января 2010}}
 +
 
 +
[[Категория:Метрические алгоритмы классификации]]

Текущая версия

Алгоритм FRiS-СТОЛП (FRiS-STOLP) - алгоритм отбора эталонных объектов для метрического классификатора на основе FRiS-функции.

Содержание

Назначение алгоритма

Пусть дана обучающая выборка X^l=(x_i, y_i)_{i=1}^l, где x_i - объекты, y_i=y^*(x_i) - классы, которым принадлежат эти объекты. Кроме того, задана метрика \rho: X \times X \rightarrow \mathbb{R}, такая, что выполняется гипотеза компактности.


Алгоритм

Входные данные

На вход алгоритм получает обучающую выборку X^l=(x_i, y_i)_{i=1}^l

Результат

В результате работы алгоритма для каждого класса y \in Y строятся множества эталонных объектов \Omega_y \subseteq X.

Вспомогательные функции

В алгоритме FRiS-STOLP используются следующие вспомогательные функции:

  • NN(u,U) – возвращает ближайший к u объект из множества U.
  • FindEtalon(X_y;\Omega) – исходя из набора уже имеющихся эталонов \Omega и набора X_y элементов класса Y, возвращает новый эталон для класса Y (алгоритм приведён ниже):
1. Для каждого объекта x \in X_y вычисляются две характеристики:
   * «обороноспособность» объекта x: 
        D_x = \frac{1}{\left| X_y \right| -1}\sum_{u \in X_y \setminus x}S \left(u,x | NN(u,\Omega) \right)  
* «толерантность» объекта x (количественная оценка, насколько объект x в роли эталона класса y «не мешает» эталонам других классов): T_x = \frac{1}{\left| X^l \setminus X_y \right|}\left(\sum_{v \in X^l \setminus X_y}S \left(v,x | NN(v,\Omega) \right)\right)
2. На основании полученных характеристик вычисляется «эффективность» объекта x: E_x = \lambda D_x + (1-\lambda) T_x
3. Функция FindEtalon возвращает объект x \in X^l с максимальной эффективностью E_x: x:=arg\max_{x \in X_y}{E_x}

Параметр \lambda \in [0,1] количественно задаёт относительную «важность» характеристик объектов («обороноспособности» и «толерантности»). Может быть выбран, исходя из специфики конкретной задачи.

Описание алгоритма

Сам алгоритм FRiS-STOLP состоит из следующих шагов:

1. Инициализировать начальные множества эталонов. Для всех классов y \in Y: 
    \Omega_y^0:=FindEtalon(X_y,X^l \setminus X_y) 
2. Инициализировать искомые множества эталонов. Для всех классов y \in Y: \Omega_y:=FindEtalon(X_y,\bigcup_{c \in Y \setminus y} \Omega_c^0)
3. Повторять пункты 4-6, пока множество рассматриваемых объектов непусто \left( X^l \not= \emptyset \right):
4. Сформировать множество U правильно классифицированных объектов: U:=  \{ x \in X^l | S(x,NN(x_i,\Omega_{y_i})| NN(x_i, \bigcup_{y \not= y_i}{\Omega_y}) > \theta \} ; 5. Удалить правильно классифицированные объекты из дальнейшего рассмотрения:
* из множеств эталонов: для каждого y \in Y: X_y:=X_y \setminus U; * из обучающей выборки: X^l:=X^l \setminus U;
6. Добавить новый эталон для каждого класса y \in Y:
\Omega_y:=\Omega_y \cup FindEtalon(X_y,\bigcup_{c \in Y \setminus y}{\Omega_c})

7. Вернуть искомые множества эталонов \Omega_y для каждого класса y \in Y

Преимущества алгоритма

Алгоритм FRiS-STOLP создаёт в процессе работы сокращенное описание обучающей выборки. Это позволяет сократить расход памяти, избавиться от ошибок и выбросов, содержащихся в ней, но при этом сохранить информацию, необходимую для дальнейшего распознавания новых объектов.

См. также


Данная статья является непроверенным учебным заданием.
Студент: Участник:osa
Преподаватель: Участник:Константин Воронцов
Срок: 21 января 2010

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

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

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