
5ЛР / 5
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
Лабораторная работа № 5
по дисциплине
“Системы искусственного интеллекта”
на тему
“КЛАСТЕРИЗАЦИЯ МАТЕМАТИЧЕСКИХ МНОЖЕСТВ МЕТОДОМ K-СРЕДНИХ”
Выполнил: студент гр. БЗС2002
Ломакин А. А.
Проверила: Матюнина Д. Д.
Москва 2023
1. Цель
Проверка работы алгоритмов с кластеризацией и методом k-средних.
2. Код программы
rng default;
X = [randn(50,2)*0.5+ones(50,2); randn(50,2)*0.85+ones(50,2); randn(50,2)*0.75+ones(50,2)];
figure;
plot(X(:,1),X(:,2),'.');
title 'Рандомное числовое множество';
[idx,C] = kmeans(X,5);
figure
gscatter(X(:,1),X(:,2),idx,'gbmrc')
hold on
scatter(C(:,1),C(:,2),90, 'filled' ,'k');
m = size(X,1);
D = sqrt(sum(abs(repmat(permute(X, [1 3 2]), ...
[1 size(C,1) 1]) - ...
repmat(permute(C, [3 1 2]), [m 1 1]) ).^2, 3));
[D I] = min(D,[],2);
fordraw = reshape([X C(I,:) nan(size(X))]', [2 m*3])';
plot (fordraw(:,1), fordraw(:,2))
x1 = min(X(:,1)):0.01:max(X(:,1));
x2 = min(X(:,2)):0.01:max(X(:,2));
[x1G,x2G] = meshgrid(x1,x2);
XGrid = [x1G(:),x2G(:)];
idx2Region = kmeans(XGrid,5,'MaxIter',1,'Start',C);
figure;
gscatter(XGrid(:,1),XGrid(:,2),idx2Region, ...
[0,0.75,0.75;0.75,0,0.75;0.75,0.75,0],'..');
hold on;
kkk = gscatter(X(:,1),X(:,2),idx);
kkk(3).Color = 'w';
kkk(2).Color = 'b';
kkk(1).Color = 'r';
kkk(4).Color = 'g';
kkk(5).Color = 'y';
title 'Разделение точек до ближайшего центра';
legend('Region 1','Region 2','Region 3','Region 4','Region 5','Location','NorthEast');
hold off;
3. Результат работы программы
Рис. 1. Рандомное числовое множество |
|
|
Рис. 3. Разделение точек до ближайшего центра в среде MATLAB
4. Вывод
В ходе лабораторной работы была исследована работа алгоритма, использующего метод кластеризации k-средних. Алгоритм был протестирован на рандомном числовом множестве из 100 значений. В результате его работы данные разбились на 5 кластеров, что позволяет наглядно оценить их структуру.
5. Контрольные вопросы
1. Что такое кластеризация?
Кластеризация – это разбиение объектов на группы похожих – кластеры 2. Что является «центральной» задачей кластеризации?
Кластеризацию применяют в следующих случаях:
1) Сложные данные разбиваются по похожим группам, упрощая их представление, а значит, и обработку в пределах каждой группы.
2) Сокращение объема выборки за счет сохранения небольшого числа характерных представителей каждого класса.
3) Выделение нетипичных объектов (выбросов), которые нельзя отнести ни к одному кластеру.
4) Построение иерархии объектов (например – классификация животных и растений).
3. Что такое нечеткая кластеризация? Результатом работы алгоритма может быть не только «четкое разбиение на кластеры», а число кластеров и степень принадлежности к каждому из них. Подобная задача называется нечеткой кластеризацией. 4. Что такое метод k-средних? Метод кластеризации. Он разбивает множество элементов векторного пространства на заранее известное число кластеров. Основная идея заключается в том, что на каждой итерации перевычисляется центр масс для каждого кластера, полученного на предыдущем шаге, затем векторы разбиваются на кластеры вновь в соответствии с тем, какой из новых центров оказался ближе по выбранной метрике. 5. В чем заключаются недостатки метода k-средних?
1) не определяет число кластеров по выборке (нужно задавать вручную).
2) Разбиение на кластеры зависит от начального положения их центров (алгоритм может давать разные результаты при разных начальных положениях центров).
3) Медленная сходимость центров к равновеснмоу состоянию при больших объемах данных.
4) Корректного разбиения удается достичь только для ярко выраженных гауссовских кластерных структур.