Тема: Кластерный анализ. VBA Excel
Доброго времени суток, умным людям!
Дано:
А(нижний предел) = 0; В(верхний предел) = 200; N(количество точек) = 100. Генерируем Х и У функцией СЛУЧМЕЖДУ(А;В) протягиваем формулу, пока ни получится N точек, то бишь 100. Копируем только значения, получаем набор случайных пар (Х;У)
Задача:
С помощью VBA произвести кластеризацию объектов(точек с координатами(Х;У)). Правила останова: 1) 7 или менее кластеров; 2) более одного объекта в каждом кластере.
Решение:
Изначально количество кластеров = количеству точек, то есть каждая точка в своем кластере. Находим "центры масс" кластеров (Mi=((сумма Хi )/Nx; (сумма Уi)/Ny) на данном этапе это - координаты точек, для каждого кластера. Теперь нужно найти расстояния между всеми центрами масс, то есть от каждой точки до всех остальных.R=(Xi-X(i+1))^2+(Yi-Y(i+1))^2. Выбрать среди них наименьшее и соединить эти два кластера в один. Опять найти центры масс для каждого кластера, опять найти все расстояния между центрами масс, определить наименьшее, объединить два соответствующих кластера в один. И так до тех пор пока количество кластеров не буден меньше либо равно семи, и при этом в каждом кластере будет более одного объекта. В итоге должна получиться точечная диаграмма на которой точки принадлежащие к одному кластеру окрашены в какой-нибудь свой цвет. В добавок ко всему, весь процесс должен быть каким то образом заметен, но это пока не так важно. Мне б для начала с самой задачей разобраться. Я вообще не очень то с VBA знакома, но в паскале программки писать приходилось, и даже немного получалось. Языки, как я поняла, родные. Но я даже не знаю с чего начать. Помогите, кто чем может. Важен любой совет.