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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Kmeans】基于Kmeans的聚类算法的MATLAB仿真

發布時間:2025/4/5 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Kmeans】基于Kmeans的聚类算法的MATLAB仿真 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0.完整源碼獲得方式

???????方式1:微信或者QQ聯系博主

方式2:訂閱MATLAB/FPGA教程,免費獲得教程案例以及任意2份完整源碼

1.軟件版本

MATLAB2021a

2.本算法理論知識

K-Means算法的思想很簡單,對于給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個簇。讓簇內的點盡量緊密的連在一起,而讓簇間的距離盡量的大。如果用數據表達式表示,假設簇劃分為(C1,C2,...Ck)(C1,C2,...Ck),則我們的目標是最小化平方誤差E:

E=∑i=1k∑x∈Ci||x?μi||22E=∑i=1k∑x∈Ci||x?μi||22

其中μiμi是簇CiCi的均值向量,有時也稱為質心,表達式為:

μi=1|Ci|∑x∈Cixμi=1|Ci|∑x∈Cix

3.核心代碼

function [U1,U2]=count(u1,u2,x)N1=0;%第一類個數 N2=0;%第二類個數 for i=1:210 d1(i)=dis1(u1,x,i);%x中所有點到u1的歐式距離 d2(i)=dis2(u2,x,i);%x中所有點到u2的歐式距離 if d1(i)>d2(i)N1=N1+1;W1(N1,:)=x(i,:);%劃分到W1類中elseN2=N2+1;W2(N2,:)=x(i,:);%劃分到W2類中end end %重新計算聚類中心 %W1類 u=[0 0]; for i=1:N1 u=u+W1(i,:); end U1=(u/N1);%W2類 u=[0 0]; for i=1:N2 u=u+W2(i,:); end U2=(u/N2); %在圖中畫出 %[~,~,r1,r2,r3,r4]=data3(); %plot(r1,r2,'.',r3,r4,'+'); %hold on; for i=1:N1 r1(i)=W1(i,1);end; for i=1:N1 r2(i)=W1(i,2);end; for i=1:N2 r3(i)=W2(i,1);end; for i=1:N2 r4(i)=W2(i,2);end; figure(2); plot(r1,r2,'ro',r3,r4,'ms'); title('k均值聚類');

4.操作步驟與仿真結論

5.參考文獻

[1]黃韜, 劉勝輝, 譚艷娜. 基于k-means聚類算法的研究[J]. 計算機技術與發展, 2011, 21(7):5.

出處-類目-編

D198

總結

以上是生活随笔為你收集整理的【Kmeans】基于Kmeans的聚类算法的MATLAB仿真的全部內容,希望文章能夠幫你解決所遇到的問題。

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