kmeans 是 MATLAB 中一个非常实用的聚类算法,用于将数据分成 K 个类(或
簇)。下面是一个使用 MATLAB 中
kmeans 函数的简单示例代码,该代码展示了如
何对一组随机生成的数据进行 K-means 聚类。
matlab 复制代码
%
生成一些随机数据
rng('default'); %
为了结果的可重复性
data = [randn(100,2)*0.75+ones(100,2);
randn(100,2)*0.5-ones(100,2)];
%
指定聚类的数量
K = 2;
%
使用
kmeans
函数进行聚类
[idx, C] = kmeans(data, K);
% idx
包含每个点的聚类索引
% C
是每个聚类的中心点
%
可视化结果
figure;
gscatter(data(:,1), data(:,2), idx, 'rgb', 'ox');
hold on;
plot(C(:,1), C(:,2), 'kx', 'MarkerSize', 15, 'LineWidth',
3);
legend('Cluster 1', 'Cluster 2', 'Centroids', 'Location',
'NW');
title('K-means Clustering Results');
xlabel('Feature 1');
ylabel('Feature 2');
grid on;
这段代码首先生成了两类数据(每类 100 个点),这些数据在二维空间中分布。
然后,使用
kmeans 函数对这些数据进行聚类,其中 K 设置为 2,即我们希望将数
据分为两个类。
kmeans 函数返回两个输出:idx 和 C。idx 是一个向量,包含了每个
数据点所属的聚类索引;
C 是一个矩阵,包含了每个聚类的中心点坐标。