
- •Кластерный анализ
- •2.1. Введение
- •2.2. Признаки объекта
- •2.3. Мера сходства объектов и классов. Расстояния.
- •2.3.1 Метрика Махалонобиса
- •2.3.1.1. Центр класса, дисперсия и среднеквадратичное отклонение
- •2.3.1.2. Скейлинг (масштабное преобразование) и стандартизованное расстояние
- •2.3.1.3 Ковариационная матрица
- •2.3.1.4 Алгоритм вычисления расстояния по Махалонобису
- •2.3.2. Функции сходства.
- •2.3.3 Расстояние между списками
- •2.4. Общая схема классификации и распознавания образов
- •2.4.1. Понятие об обучении. Обучение с учителем и без учителя.
- •2.4.2. Общая схема системы классификации
- •2.5. Разделяющие поверхности и разделяющие функции
- •2.5.1 Линейные и кусочно-линейные разделяющие функции
- •2.6. Методы классификации. Алгоритмы классификации.
- •2.6.1. Алгоритм максимина
- •2.6.2. Алгоритм к-средних
- •2.6.3. Нечеткий алгоритм к-средних (Fuzzy k-means)
- •Алгоритм изодата
2.6.2. Алгоритм к-средних
Для систем автоматической классификации является характерным то, что предполагается заранее известным либо количество классов, либо объекты – представители классов. Для реализации систем автоматической классификации, при известном или заданном количестве классов, используется алгоритм К-средних.
Алгоритм К-средних отличается от
алгоритма Максимина, в первую очередь
тем, что заранее известно или задано
количество классов
.
В качестве представителей этих классов
могут использовать либо
первых элементов из обучающей выборки,
либо любые
элементов. Классификации в этом случае
заключается в поиске центров заданного
количества классов
.
Установив центры классов необходимо
провести первый этап классификации,
который заключается в распределении
объектов обучающей выборке по заданным
классам по принципу наименьшего
расстояния. Это означает, что объект
относят к тому классу, для которого
является наименьшим. Распределив все
объекты обучающей выборки по классам,
находят новые центры классов. Новые
положения центров классов в пространстве
существенных признаков определяют из
условия минимума среднеквадратического
отклонения объектов данного класса от
его центра
здесь
-
вектор соответствующий центру
-го
класса.
Отсюда следует что положение центра
-того
класса определяется из соотношения
.
Тогда получим, что
,
здесь
-
количество объектов в
-
том классе. Другими словами, центр класса
– это средний вектор объектов принадлежащих
данному классу.
Определив новые положения центров всех классов, повторяют процедуру распределения объектов по классам. Определение новых положений центров классов и распределение объектов по классам с новыми центрами продолжают до тех пор, пока положения центров классов не перестанут изменяться.
Рассмотрим словесное описание алгоритма К–средних. Он состоит из следующих шагов.
-
Задать количество классов
и параметр
.
-
На первой итерации (
) выбирают в качестве экземпляров классов первые
элементов обучающей выборки:
-
Распределить объекты обучающей выборки по классам. Классы формируют следующим образом. Пусть необходимо установить к какому из классов принадлежит объект
. Вычислим расстояния между данным объектом и центрами классов в выбранной метрике (например, пусть это будет метрика Евклида)
.
Здесь
-количество
существенных признаков,
- существенный признак или
-ая
координата объекта в пространстве
существенных признаков,
-
координаты центра
-го
класса. Во множестве расстояний
найдем наименьшее из них
,
запомним соответствующий номер класса
-
.
Отнесем объект
к классу с номером
.
Классы считаются сформированными, если
обработаны все объекты обучающей
выборки.
-
Положить
и вычислить новые положения центров классов
,
то есть для определения новых центров
классов необходимо вычислить
средних значений (отсюда и происходит
название алгоритма).
-
На этом шаге используется процедура, которая позволяет установить окончание алгоритма (окончание процесса обучения системы классификации). Для этого необходимо вычислить расстояния в выбранной метрике между центрами одноименных классов на
-ой и
итерациях
.
Если при этом выполняется условие
,
то есть отклонение новых положений центров классов лежит в пределах заданной точности вычислений, то алгоритм закончен. В противном случае, когда
нужно вернуться к шагу 3.
Рассмотрим
реализацию этого алгоритма на примере,
когда количество объектов равно
,
а количество существенных признаков
равно
.
Для
удобства вычислений будем использовать
четыре таблицы. Первая – это таблица
значений существенных признаков объектов
(номер строки – номер объекта номер
столбца – номер существенного признака).
Следует отметить, что при разработке
программного обеспечения реализующего
систему классификации на базе алгоритма
К-средних, каждая из таблиц в программе
заменяется соответствующим массивом.
-
Y(i,j)
1
2
1
4
12
2
4
14
3
13
11
4
16
14
5
6
4
6
7
4
Вторая таблица – таблица пометок объектов. Если объект – это центр класса, то ему присваивают отрицательную пометку (номер класса с отрицательным знаком) или положительную пометку равную номеру класса, к которому отнесён данный объект.
-
Pm(i)
1
2
3
4
5
6
Третья таблица - это расстояния в выбранной метрике между координатами центров классов и непомеченными объектами.
-
d(i,j)
№ об.
№ кл.
1
2
3
4
5
6
1
2
3
Четвертая таблица – координаты центров классов.
-
N(i,j)
j
i
1
2
1
2
3
Зададим
желаемое число классов
и параметр
.
Выберем в качестве экземпляров первого,
второго и третьего класса соответственно
первый, второй и третий объекты обучающей
выборки.
-
N(i,j)
j
i
1
2
1
4
12
2
4
14
3
13
14
и присвоим им отрицательные пометки в таблице пометок
-
Pm(i)
1
2
3
4
5
6
-1
-2
-3
Вычислим расстояние между центрами классов и всеми непомеченными объектами (в метрике Манхэттена).
-
d(i,j)
1
2
3
4
5
6
1
14
10
11
2
12
12
13
3
6
14
13
Найдем
минимальные расстояния между центрами
классов и всеми непомеченными объектами,
т.е. минимальные значения в каждом
столбце таблицы
.
Классифицируем объекты по критерию
минимального расстояния и заполняем
таблицу пометок:
следовательно объект
принадлежит классу
.
В итоге получим
-
Pm(i)
1
2
3
4
5
6
-1
-2
-3
3
1
1
Здесь
объекту с номером
присваивается положительная пометка,
равная номеру класса, расстояние до
которого от данного объекта минимально.
Вычислим
новые значения координат центров. С
этой целью поставим в соответствие всем
объектам каждого класса, включая центры,
векторы в пространстве существенных
признаков. Например, для первого класса
это будут векторы
,
и
.
Новое положение центра первого класса
вычисляется по формуле
.
В координатном представлении:
.
Поступая
аналогичным образом, найдем центры
оставшихся классов:
и
.
Найдем расстояния между новыми и предыдущими центрами одноименных классов:
,
и
.
Найдем
наибольшее из них
.
Поскольку
,
то необходимо повторить процедуру
распределения объектов по классам с
новыми центрами. Для этого необходимо
выполнить следующие действия. Поскольку
положения центров первого и третьего
классов изменилось, то изменим знаки
их пометок:
и
.
Для второго центра координаты не изменились, поэтому его пометку не изменяем.
-
Pm(i,j)
1
2
3
4
5
6
1
-2
3
3
1
1
Занесем новые координаты центров в соответствующую таблицу.
-
N(i,j)
j
i
1
2
1
6
7
2
4
14
3
15
13
Обнуляем все положительные пометки. В данном случае таблица пометок примет вид:
-
Pm(i,j)
1
2
3
4
5
6
0
-2
0
0
0
0
Вычисляем расстояния между центрами классов и непомеченными объектами
-
d(i,j)
1
2
3
4
5
6
1
7
11
17
3
4
2
2
12
12
12
13
3
12
4
2
18
17
Находим наименьшие расстояния в столбцах этой таблицы. Классифицируем объекты и заполняем таблицу пометок
-
Pm(i)
1
2
3
4
5
6
2
-2
3
3
1
1
Вычисляем
новые координаты центров
,
,
,
сравниваем их с предыдущими значениями.
Положение центра
изменилось и его предыдущая пометка
отрицательная, поэтому изменим ее
знак:
.
-
Pm(i)
1
2
3
4
5
6
2
2
3
3
1
1
Заносим координаты новых центров в таблицу, если они изменились
-
N(i,j)
1
2
1
7
4
2
4
13
3
15
13
Координаты центров поменялись, выполняем следующую итерацию. Обнуляем все положительные пометки.
-
Pm(i)
1
2
3
4
5
6
0
0
0
0
0
0
Вычисляем расстояния от новых центров классов до всех объектов
-
d(i,j)
1
2
3
4
5
6
1
11
13
13
19
1
0
2
1
1
11
13
11
12
3
12
12
4
2
18
17
Классифицируем объекты:
-
Pm(i)
1
2
3
4
5
6
2
2
3
3
1
1
Вычисляем координаты новых центров и сравниваем их с предыдущими значениями.
-
N(i,j)
1
2
1
7
4
2
4
13
3
15
13
Поскольку координаты центров не изменились, то алгоритм закончен. Таблица пометок содержит всю информацию о распределении объектов между классами.