在matlab上用k-means聚类算法聚类鸢尾花数据集
时间: 2023-06-14 17:04:23 浏览: 219
好的,以下是在MATLAB上使用k-means聚类算法聚类鸢尾花数据集的步骤:
1. 加载鸢尾花数据集
```
load fisheriris
```
2. 提取需要聚类的特征
```
X = meas(:, 3:4);
```
这里我们选择花瓣的长度和宽度作为聚类的特征。
3. 进行k-means聚类
```
k = 3; % 设置聚类的类别数
[idx, C] = kmeans(X, k);
```
聚类的结果保存在`idx`中,每个样本所属的类别编号;聚类中心保存在`C`中。
4. 可视化聚类结果
```
figure;
gscatter(X(:,1), X(:,2), idx);
hold on;
plot(C(:,1), C(:,2), 'k*', 'MarkerSize', 10);
legend('Cluster 1', 'Cluster 2', 'Cluster 3', 'Centroids');
```
这里使用了`gscatter`函数将每个样本按照聚类结果进行可视化,使用`plot`函数将聚类中心标出来。
完整代码如下:
```
load fisheriris
X = meas(:, 3:4);
k = 3; % 设置聚类的类别数
[idx, C] = kmeans(X, k);
figure;
gscatter(X(:,1), X(:,2), idx);
hold on;
plot(C(:,1), C(:,2), 'k*', 'MarkerSize', 10);
legend('Cluster 1', 'Cluster 2', 'Cluster 3', 'Centroids');
```
阅读全文