Алгоритм FRiS-СТОЛП
Материал из MachineLearning.
м (→Преимущества алгоритма) |
м (→Описание алгоритма) |
||
(4 промежуточные версии не показаны) | |||
Строка 18: | Строка 18: | ||
* <tex>FindEtalon(X_y;\Omega)</tex> – исходя из набора уже имеющихся эталонов <tex>\Omega</tex> и набора <tex>X_y</tex> элементов класса <tex>Y</tex>, возвращает новый эталон для класса <tex>Y</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> вычисляются две характеристики: | + | 1. '''Для каждого объекта <tex>x \in X_y</tex> вычисляются две характеристики''': |
* «обороноспособность» объекта <tex>x</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>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 /> | ||
Строка 24: | Строка 24: | ||
класса <tex>y</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 /> | <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>: | + | 2. '''На основании полученных характеристик вычисляется «эффективность» объекта <tex>x</tex>''': |
<tex>E_x = \lambda D_x + (1-\lambda) T_x</tex> <br /> | <tex>E_x = \lambda D_x + (1-\lambda) T_x</tex> <br /> | ||
- | 3. Функция FindEtalon возвращает объект <tex>x \in X^l</tex> с максимальной эффективностью <tex>E_x</tex>: | + | 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>x:=arg\max_{x \in X_y}{E_x}</tex> <br /> | ||
+ | |||
+ | Параметр <tex>\lambda \in [0,1]</tex> количественно задаёт относительную «важность» характеристик объектов («обороноспособности» и «толерантности»). Может быть выбран, исходя из специфики конкретной задачи. | ||
===Описание алгоритма=== | ===Описание алгоритма=== | ||
- | Сам алгоритм FRiS-STOLP | + | Сам алгоритм FRiS-STOLP состоит из следующих шагов: |
- | 1. Инициализировать начальные множества эталонов. Для всех классов <tex>y \in Y</tex>: | + | 1. '''Инициализировать начальные множества эталонов'''. Для всех классов <tex>y \in Y</tex>: |
<tex>\Omega_y^0:=FindEtalon(X_y,X^l \setminus X_y)</tex> <br /> | <tex>\Omega_y^0:=FindEtalon(X_y,X^l \setminus X_y)</tex> <br /> | ||
- | 2. Инициализировать искомые множества эталонов. Для всех классов <tex>y \in Y</tex>: | + | 2. '''Инициализировать искомые множества эталонов'''. Для всех классов <tex>y \in Y</tex>: |
<tex>\Omega_y:=FindEtalon(X_y,\bigcup_{c \in Y \setminus y} \Omega_c^0)</tex> <br /> | <tex>\Omega_y:=FindEtalon(X_y,\bigcup_{c \in Y \setminus y} \Omega_c^0)</tex> <br /> | ||
- | 3. Повторять пункты 4-6, пока <tex>X^l \not= \emptyset</tex>: <br /> | + | 3. '''Повторять пункты 4-6''', пока множество рассматриваемых объектов непусто <tex>\left( X^l \not= \emptyset \right)</tex>: <br /> |
- | 4. Сформировать множество <tex>U</tex> правильно классифицированных объектов: | + | 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>; | <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 /> | + | 5. '''Удалить правильно классифицированные объекты из дальнейшего рассмотрения''': <br /> |
- | <tex> | + | * '''из множеств эталонов''': для каждого <tex>y \in Y:</tex> <tex>X_y:=X_y \setminus U</tex>; |
- | <tex> | + | * '''из обучающей выборки''': <tex>X^l:=X^l \setminus U</tex>; <br /> |
- | 6. Добавить новый эталон для каждого класса <tex>y \in Y</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 /> | <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> | + | 7. '''Вернуть искомые множества эталонов''' <tex>\Omega_y</tex> для каждого класса <tex>y \in Y</tex> |
==Преимущества алгоритма== | ==Преимущества алгоритма== | ||
Строка 55: | Строка 57: | ||
- | {{Задание|osa|Константин Воронцов| | + | {{Задание|osa|Константин Воронцов|21 января 2010}} |
- | |||
[[Категория:Метрические алгоритмы классификации]] | [[Категория:Метрические алгоритмы классификации]] |
Текущая версия
Алгоритм FRiS-СТОЛП (FRiS-STOLP) - алгоритм отбора эталонных объектов для метрического классификатора на основе FRiS-функции.
Содержание[убрать] |
Назначение алгоритма
Пусть дана обучающая выборка , где
- объекты,
- классы, которым принадлежат эти объекты. Кроме того, задана метрика
, такая, что выполняется гипотеза компактности.
Алгоритм
Входные данные
На вход алгоритм получает обучающую выборку
Результат
В результате работы алгоритма для каждого класса строятся множества эталонных объектов
.
Вспомогательные функции
В алгоритме FRiS-STOLP используются следующие вспомогательные функции:
-
– возвращает ближайший к
объект из множества
.
-
– исходя из набора уже имеющихся эталонов
и набора
элементов класса
, возвращает новый эталон для класса
(алгоритм приведён ниже):
1. Для каждого объектавычисляются две характеристики: * «обороноспособность» объекта
:
![]()
* «толерантность» объекта(количественная оценка, насколько объект
в роли эталона класса
«не мешает» эталонам других классов):
![]()
2. На основании полученных характеристик вычисляется «эффективность» объекта:
![]()
3. Функция FindEtalon возвращает объектс максимальной эффективностью
:
![]()
Параметр количественно задаёт относительную «важность» характеристик объектов («обороноспособности» и «толерантности»). Может быть выбран, исходя из специфики конкретной задачи.
Описание алгоритма
Сам алгоритм FRiS-STOLP состоит из следующих шагов:
1. Инициализировать начальные множества эталонов. Для всех классов:
![]()
2. Инициализировать искомые множества эталонов. Для всех классов:
![]()
3. Повторять пункты 4-6, пока множество рассматриваемых объектов непусто:
4. Сформировать множествоправильно классифицированных объектов:
![]()
; 5. Удалить правильно классифицированные объекты из дальнейшего рассмотрения:
* из множеств эталонов: для каждого![]()
; * из обучающей выборки:
;
6. Добавить новый эталон для каждого класса:
7. Вернуть искомые множества эталоновдля каждого класса
![]()
Преимущества алгоритма
Алгоритм FRiS-STOLP создаёт в процессе работы сокращенное описание обучающей выборки. Это позволяет сократить расход памяти, избавиться от ошибок и выбросов, содержащихся в ней, но при этом сохранить информацию, необходимую для дальнейшего распознавания новых объектов.
См. также
![]() | Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |