Методы фильтрации обучающей выборки

## Knn

Метод ближайших соседей не требует обучения, Сложность предсказания

O
(
K
D
)

{\displaystyle O(KD)}

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

## Методы фильтрации

Удаление выбросов. Рассмотрим отступы

M
(

x

i

,

c

j

# )

g

c

j

(

x

i

)
−

max

c
∈

C

∖
{

c

j

}

g

c

(

x

i

)

{\displaystyle M(x\_{i},c\_{j})=g\_{c\_{j}}(x\_{i})-{\underset {c\in \mathbf {C} \backslash \{c\_{j}\}}{\max }}g\_{c}(x\_{i})}

 и удалим все объекты, которые являются **выбросами**, т.е.

x

i

:
M
(

x

i

,

c

j

)
<
δ
,
δ
<
0

{\displaystyle {x\_{i}:M(x\_{i},c\_{j})<\delta ,\delta <0}}

.

C

{\displaystyle {\textbf {C}}}

 — множество всех классов.

## Эталоны

* **Эталоны** — это такое подмножество выборки

X

l

{\displaystyle X^{l}}

, что все объекты

X

l

{\displaystyle X^{l}}

 (или их большая часть) классифицируются правильно при использовании в качестве обучающей выборки множества эталонов.
* Эталонами

i

{\displaystyle i}

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

X

l

{\displaystyle X^{l}}

 до ближайшего «своего» эталона меньше, чем до ближайшего «чужого» эталона.

Простой перебор для отбора эталонов не эффективен, так как число способов выбора по

t

{\displaystyle t}

 эталонов для каждого класса (число классов

k

{\displaystyle k}

) составляет

∏

# j
1

k

C

m

j

t

{\displaystyle \prod \_{j=1}^{k}C\_{m\_{j}}^{t}}

. Алгоритм STOLP позволяет сократить этот перебор

## Величина риска

Величина риска (

W

{\displaystyle W}

) — величина, характеризующая степень риска для объекта быть классифицированным не в тот класс, которому он принадлежит.

* При использовании метода ближайшего соседа можно считать

W
(

x

i

# )

ρ

i
n

(

x

i

)

/

ρ

o
u
t

(

x

i

)

{\displaystyle W(x\_{i})=\rho \_{in}(x\_{i})/\rho \_{out}(x\_{i})}

, где

ρ

i
n

{\displaystyle \rho \_{in}}

 — расстояние от объекта

x
i

{\displaystyle x\_i }

 до ближайшего к нему объекта (или эталона) из «своего» класса,

ρ

o
u
t

{\displaystyle \rho \_{out}}

 — до ближайшего объекта (или эталона) «чужого» класса.
* При использовании любого метрического метода можно положить

W
(

x

i

# )
−
M
(

x

i

,
Ω
)

{\displaystyle W(x\_{i})=-M(x\_{i},\Omega )}

, где

M
(

x

i

,
Ω
# )

Γ

y

i

−

max

y
∈

Y

∖

y

i

Γ

y

(

x

i

)

{\displaystyle M(x\_{i},\Omega )=\Gamma \_{y\_{i}}-\max \_{y\in \mathbb {Y} \setminus y\_{i}}\Gamma \_{y}(x\_{i})}

 — отступ на объекте

x
i

{\displaystyle x\_i }

 при обучающей выборке

Ω

{\displaystyle \Omega}

, где

Ω

{\displaystyle \Omega}

 — множество эталонов.

Что такое Г?

Кроме того, в зависимости от используемого метода классификации можно подобрать и другие оценки величины риска. Главное, чтобы они принимали большие значения на объектах-выбросах, меньшие — на объектах, находящихся на границе класса, и еще меньшие — на объектах, находящихся в глубине своего класса.

## Алгоритм STOLP

### Вход

* Выборка

X

l

{\displaystyle X^{l}}
* Допустимая доля ошибок

l
0

{\displaystyle l\_0}
* Порог отсечения выбросов

δ

{\displaystyle \delta}
* Алгоритм классификации
* Формула для вычисления величины риска

W

{\displaystyle W}

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

* Отбросить выбросы (объекты

X

l

{\displaystyle X^{l}}

 с

W
>
δ

{\displaystyle W>\delta }

)
* Сформировать начальное приближение

Ω

{\displaystyle \Omega}

 — из объектов выборки

X

l

{\displaystyle X^{l}}

 выбрать по одному объекту каждого класса, обладающему среди объектов данного класса максимальной величиной риска либо минимальной величиной риска
* Наращивание множества эталонов (пока доля числа объектов выборки

X

l

{\displaystyle X^{l}}

, распознаваемых неправильно, не станет меньше

l
0

{\displaystyle l\_0}

):
	+ Классифицировать объекты

	X

	l

	{\displaystyle X^{l}}

	, используя в качестве обучающей выборки

	Ω

	{\displaystyle \Omega}
	+ Пересчитать величины риска для всех объектов

	X

	l

	∖
	Ω

	{\displaystyle X^{l}\setminus \Omega }

	 с учетом изменения обучающей выборки
	+ Среди объектов каждого класса, распознанных неправильно, выбрать объекты с максимальной величиной риска и добавить их к

	Ω

	{\displaystyle \Omega}

### Результат

Множество эталонов

Ω
∈

X

l

{\displaystyle \Omega \in X^{l}}

 для каждого класса представляет собой некоторый набор объектов, находящихся на границе класса, и, если в качестве начального приближения выбирались объекты с минимальной величиной риска, один объект, находящийся в центре класса.

## **Алгоритм удаления неинформативных объектов по версии Китова**

Идея: удалить неинформативные объекты, которые не дают информации о классе, которому они принадлежат.

* **for each** class

# c
1
,
2
,
…
C

{\displaystyle c=1,2,\ldots C}

 *#add the most*
	+ x
	(
	c
	)
	=

	a
	r
	g

	max

	x

	i

	:

	c

	i

	=
	c

	(
	M
	(

	x

	i

	,

	c

	i

	)
	)

	{\displaystyle x(c)=\mathrm {arg} \max \_{x\_{i}:c\_{i}=c}(M(x\_{i},c\_{i}))}

	 *# representative example*

* Initialize etalons:

# Ω
{
x
(
c
)
,
# c
1
,
2
,
…
C
}

{\displaystyle \Omega =\{x(c),c=1,2,\ldots C\}}
* **repeat while** accuracy significantly increases
	+ x

	i

	=

	a
	r
	g

	max

	x

	i

	∈
	T
	S
	∖
	Ω

	(
	M
	(
	x
	,
	Ω
	)
	)

	{\displaystyle x\_{i}=\mathrm {arg} \max \_{x\_{i}\in TS\backslash \Omega }(M(x,\Omega ))}

	 *# add object*
	+ Ω
	=
	Ω
	∪
	{

	x

	i

	}

	{\displaystyle \Omega =\Omega \cup \{x\_{i}\}}

	 #*with smallest margin*
* return

Ω

{\displaystyle \Omega}

Краткое содержание: сначала добавляем объекты по одному на класс с наибольшим отступом. А потом, пока увеличивается точность, добавляем с наименьшим отступом.

## Ссылки

Китовослайды

Алгоритм STOLP