日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab 泡泡图,使用matlab绘制2维、3维气泡图

發(fā)布時間:2023/12/10 循环神经网络 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 泡泡图,使用matlab绘制2维、3维气泡图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在學習模糊c均值聚類時,突然想到能否將每個樣本對所屬簇的奴屬度(C)用氣泡圖的形式表示出來,這樣就可以在一張圖上同時獲得分類與奴屬度(C)兩類信息。在matlab中沒有繪制氣泡圖的專用函數(shù),不過可以通過手動設置參數(shù),來最終達到氣泡圖的效果。以下是實現(xiàn)代碼。

二維氣泡圖的繪制

% 這個腳本用來對模糊c均值聚類生成二維氣泡圖

clc

clear

%% 獲得模糊c均值聚類的結果數(shù)據(jù)

load fcmdata.dat

[centers,U] = fcm(fcmdata,2); % 返回聚類中心信息以及每個數(shù)據(jù)點奴屬與各聚類中心的值

index1 = find(U(1,:)==max(U));% 使用find()函數(shù)找到屬于第一個聚類中心的元素序號

index2 = find(U(2,:)==max(U));% 獲得屬于第二個聚類中心的元素序號

%% 繪制二維bubble圖

figure

weight = normalize(max(U),'range')*600; % 一種擴大一組數(shù)據(jù)之間差距的方法,否則氣泡效果不明顯

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

最終繪制效果如下圖所示:

氣泡的大小代表每個樣本的奴屬度(C)但可以看出大部分氣泡大小差距不大,只有在兩分類交界處出現(xiàn)奴屬度較小的氣泡,這是符合實施規(guī)律的。事實上,圖中氣泡的大小差距是經過放大處理的,若不經歷此步操作,氣泡的大小是差不多的。

三維氣泡圖的繪制

原理同二維氣泡圖一樣,直接上代碼。

% 使用這個腳本創(chuàng)建三維氣泡圖

clc

clear

%% 數(shù)據(jù)集的創(chuàng)建

rng default; % For reproducibility

X = [randn(20,3)*0.75+ones(20,3);randn(20,3)*0.5-ones(20,3)]; % 創(chuàng)建20個樣本的二分類數(shù)據(jù)集

%% 進行模糊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

最終繪制效果圖如下圖所示:

后續(xù)

冷靜下來想了想,將c值以氣泡圖形式表示出來似乎有點畫蛇添足,不過作為日常編程練習還是有幫助的。matlab入門小白,歡迎大家多多指教!

總結

以上是生活随笔為你收集整理的matlab 泡泡图,使用matlab绘制2维、3维气泡图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。