k均值聚类代码matlab
时间: 2023-10-07 22:05:49 浏览: 119
k均值聚类matlab
5星 · 资源好评率100%
以下是一个简单的k均值聚类的MATLAB代码示例:
```matlab
% 准备数据
data = [1 1; 1 2; 2 1; 4 4; 4 5; 5 4];
% 设置聚类数量
k = 2;
% 初始化聚类中心
centroids = data(randperm(size(data,1), k), :);
% 迭代更新聚类
maxIterations = 10;
for iter = 1:maxIterations
% 计算每个样本与聚类中心的距离,并选择最近的聚类中心
distances = pdist2(data, centroids);
[~, labels] = min(distances, [], 2);
% 更新聚类中心为各聚类的均值
for i = 1:k
centroids(i, :) = mean(data(labels == i, :));
end
end
% 打印最终的聚类结果
disp(labels);
```
这是一个简单的k均值聚类实现。首先,输入数据存储在`data`变量中。然后,我们选择要聚类的数量`k`。接下来,我们随机初始化`k`个聚类中心。然后,我们迭代地进行以下步骤:计算每个样本与聚类中心的距离,并选择最近的聚类中心;更新聚类中心为各聚类的均值。最后,输出每个样本的聚类标签。
请注意,该代码示例仅为了说明目的,并不包含完整的错误处理和优化措施。在实际使用中,建议进行更全面的错误处理和性能优化。
阅读全文