資源簡介
親測k_means,使用c語言和matlab實現,matlab代碼調試后可用!K-means算法是很典型的基于距離的聚類算法,采用距離作為相似性的評價指標,即認為兩個對象的距離越近,其相似度就越大。該算法認為簇是由距離靠近的對象組成的,因此把得到緊湊且獨立的簇作為最終目標。
代碼片段和文件信息
clc;
clear;
%?第一類數據
%?均值
mu1?=?[-2?-2];
%?協方差
S1?=?[0.5?0;?0?0.5];
%?產生高斯分布數據
data1?=?mvnrnd(mu1?S1?100);
%?第二類數據
mu2?=?[2?-2];
S2?=?[0.5?0;?0?0.5];
data2?=?mvnrnd(mu2?S2?100);
%?第三類數據
mu3?=?[-2?2];
S3?=?[0.5?0;?0?0.5];
data3?=?mvnrnd(mu3?S3?100);
%?第四類數據
mu4?=?[2?2];
S4?=?[0.5?0;?0?0.5];
data4?=?mvnrnd(mu4?S4?100);
%?顯示數據
figure();
hold?on;
plot(data1(:1)?data1(:2)?‘+‘);
plot(data2(:1)?data2(:2)?‘r+‘);
plot(data3(:1)?data3(:2)?‘g+‘);
plot(data4(:1)?data4(:2)?‘b+‘);
grid?on;
data?=?[data1;?data2;?data3;?data4];
%?數據聚類
[idx?ctr]?=?k_means(data?4?1000);
[m?n]?=?size(idx);
%?顯示聚類后的結果
figure();
hold?on;
for?i=1:m
????if?idx(i?3)?==?1
????????plot(idx(i?1)?idx(i?2)?‘r.‘?‘MarkerSize‘?12);?
????elseif?idx(i
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.CA....??????2310??2019-03-20?23:38??k_means.m
????.CA....??????1206??2019-03-20?23:38??kmean_main.m
-----------?---------??----------?-----??----
?????????????????3516????????????????????2
- 上一篇:C語言實現郵件發送功能(SMTP)源碼
- 下一篇:支持向量機應用
評論
共有 條評論