Этот пример показывает, как настроить количество нечеткого перекрытия при выполнении нечеткой кластеризации c-означает.
Создайте случайный набор данных. Для повторяемости инициализируйте генератор случайных чисел к его значению по умолчанию.
rng('default')
data = rand(100,2);
Задайте нечеткие матричные экспоненты разбиения.
M = [1.1 2.0 3.0 4.0];
Значения экспоненты в M
должно быть больше 1
с меньшими значениями, задающими более низкую степень нечеткого перекрытия. Другими словами, как M
подходы 1
, контуры между кластерами становятся более четким.
Для каждого показателя перекрытия:
Группируйте данные.
Классифицируйте каждую точку данных в кластер, для которого она имеет самую высокую степень принадлежности.
Найдите точки данных с максимальными значениями принадлежности ниже 0.6
. Эти точки имеют более нечеткую классификацию.
Чтобы количественно определить степень нечеткого перекрытия, вычислите среднее максимальное значение принадлежности для всех точек данных. Более высокое среднее максимальное значение принадлежности указывает, что существует менее нечеткое перекрытие.
Постройте график результатов кластеризации.
for i = 1:4 % Cluster the data. options = [M(i) NaN NaN 0]; [centers,U] = fcm(data,2,options); % Classify the data points. maxU = max(U); index1 = find(U(1,:) == maxU); index2 = find(U(2,:) == maxU); % Find data points with lower maximum membership values. index3 = find(maxU < 0.6); % Calculate the average maximum membership value. averageMax = mean(maxU); % Plot the results. subplot(2,2,i) plot(data(index1,1),data(index1,2),'ob') hold on plot(data(index2,1),data(index2,2),'or') plot(data(index3,1),data(index3,2),'xk','LineWidth',2) plot(centers(1,1),centers(1,2),'xb','MarkerSize',15,'LineWidth',3) plot(centers(2,1),centers(2,2),'xr','MarkerSize',15,'LineWidth',3) hold off title(['M = ' num2str(M(i)) ', Ave. Max. = ' num2str(averageMax,3)]) end
Заданная точка данных классифицируется в кластер, для которого она имеет самое высокое значение принадлежности, как показано maxU
. Максимальное значение членства в 0.5
указывает, что точка принадлежит обоим кластерам одинаково. Точки данных, отмеченные черным x, имеют максимальные значения принадлежности ниже 0.6
. Эти точки характеризуются большей степенью неопределенности в том, что касается их членства в группах.
Больше точек данных с низкими максимальными значениями принадлежности указывают на большую степень нечеткого перекрытия в результате кластеризации. Максимальное среднее значение значение членства, averageMax
, предоставляет количественное описание перекрытия. Система координат averageMax
значение 1
указывает четкие кластеры с меньшими значениями, указывающими на большее перекрытие.