Uso de MATLAB dibujar una de dos dimensiones, la figura burbuja 3-dimensional.

En el aprendizaje de fuzzy c-means clustering, de repente pensó que se puede representar para cada muestra pertenece al género de los grupos de esclavos (C) en forma de un gráfico de burbujas, por lo que se puede obtener al mismo tiempo es una clasificación grado y los esclavos en un mapa (C) dos tipos de información. En burbujas FIG MATLAB no están dibujados funciones especializadas, pero los parámetros pueden ser configurados manualmente para lograr el efecto final de la figura burbuja. El siguiente es el código de la aplicación.

Burbuja de dibujo mapa bidimensional

% 这个脚本用来对模糊c均值聚类生成二维气泡图
clc
clear 
%% 获得模糊c均值聚类的结果数据
load fcmdata.dat
[centers,U] = fcm(fcmdata,2); % 返回聚类中心信息以及每个数据点奴属与各聚类中心的值
index1 = find(U(1,:)==max(U));% 使用find()函数找到属于第一个聚类中心的元素序号
index2 = find(U(2,:)==max(U));% 获得属于第二个聚类中心的元素序号

%% 绘制二维bubble图
figure
weight = normalize(max(U),'range')*600; % 一种扩大一组数据之间差距的方法,否则气泡效果不明显
weight(weight==0)=(1/20)*mean(weight);% 粗略将0值转化为1/20的均值(这是估计出来的)
% 绘制第一个簇的气泡图
for i=1:length(index1)
    scatter(fcmdata(index1(i),1),fcmdata(index1(i),2),weight(index1(i)),...
        'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','r',...
        'MarkerFaceAlpha',0.3);
    hold on % 别忘了这句,要不然总是一个点
end
% 绘制第二个簇的气泡图
for i=1:length(index2)
    scatter(fcmdata(index2(i),1),fcmdata(index2(i),2),weight(index2(i)),...
        'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','b',...
        'MarkerFaceAlpha',0.3);
    hold on % 别忘了这句,要不然总是一个点
end
plot(centers(:,1),centers(:,2),'xk','markersize',10,'linewidth',3);
hold off

Los resultados sorteo final como se muestra a continuación:
Aquí Insertar imagen Descripción
tamaño de la burbuja de las muestras que representan cada uno de los género de esclavos (C) pueden verse pero no más brecha tamaño de las burbujas, sólo un pequeño género de aparece esclavos de burbujas en la unión de dos clasificación, que está en línea con la aplicación de la ley. De hecho, el tamaño de la brecha entre las burbujas de la figura amplificada se procesa, si no se somete a este paso, es aproximadamente el mismo tamaño de las burbujas.

Representación Bubble-dimensional de la figura.

Principio es el mismo que el gráfico de burbujas de dos dimensiones, directamente en el código.

% 使用这个脚本创建三维气泡图
clc
clear
%% 数据集的创建
rng default; % For reproducibility
X = [randn(20,3)*0.75+ones(20,3);randn(20,3)*0.5-ones(20,3)]; % 创建20个样本的二分类数据集
%% 进行模糊c均值聚类
Numclust = 2;
[centers,U] = fcm(X,Numclust);
index1 = find(U(1,:)==max(U)); % 获取簇1的标号
index2 = find(U(2,:)==max(U)); % 获取簇2的标号
weight = normalize(max(U),'range')*800; % 获取气泡权重
weight(weight==0) = (1/20)*mean(weight);  % 调好看一点
%% 绘制3维气泡图
figure
for i = 1:length(index1)
   scatter3(X(index1(i),1),X(index1(i),2),X(index1(i),3),weight(index1(i)),...
       'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','r',...
        'MarkerFaceAlpha',0.3);
    hold on
end

for i = 1:length(index2)
   scatter3(X(index2(i),1),X(index2(i),2),X(index2(i),3),weight(index2(i)),...
       'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','b',...
        'MarkerFaceAlpha',0.3);
    hold on
end
plot3(centers(:,1),centers(:,2),centers(:,3),'xk','markersize',10,'linewidth',3);
hold off

El mapeo resultados finales como se muestra a continuación:
Aquí Insertar imagen Descripción

Seguimiento

Calmarse y pensó, el valor c representado en forma de un gráfico de burbujas parece un poco superfluo, sino como un programa de ejercicio diario es útil. MATLAB entrada-blanco, dar la bienvenida a las exposiciones!

Publicado cinco artículos originales · ganado elogios 6 · vistas 2218

Supongo que te gusta

Origin blog.csdn.net/qq_35000721/article/details/100133142
Recomendado
Clasificación