kmeans算法不同簇显示不同颜色的代码
时间: 2024-05-04 08:22:28 浏览: 107
下面是使用Python和matplotlib库实现kmeans算法并将不同簇显示不同颜色的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成随机数据
data = np.random.rand(100, 2)
# 聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(data)
labels = kmeans.labels_
centers = kmeans.cluster_centers_
# 可视化
colors = ['r', 'g', 'b']
for i in range(len(data)):
plt.scatter(data[i][0], data[i][1], c=colors[labels[i]])
for center in centers:
plt.scatter(center[0], center[1], marker='*', s=200, c='black')
plt.show()
```
代码中,首先使用numpy库生成100个二维随机数据。然后使用sklearn.cluster库中的KMeans类进行聚类,将数据分为3类。
接着定义3种颜色,根据每个数据点的类别标签labels[i],将其对应的颜色赋值给c参数,可实现不同簇显示不同颜色。最后画出散点图,并用黑色星号标记聚类中心centers。
相关问题
abc kmeans算法matlab代码
K均值聚类(K-means Clustering)是一种常用的无监督学习算法,用于将数据集划分为K个不同的簇。
在MATLAB中,可以使用"K-means"函数实现对数据进行聚类。下面是一个简单的K-means聚类的MATLAB代码示例:
```matlab
% 加载数据集
data = load('data.mat');
% 设置聚类的个数
k = 3;
% 运行K-means算法并获取聚类结果
[idx, C] = kmeans(data, k);
% 绘制聚类结果
figure;
hold on;
for i = 1:k
% 获取第i个簇的索引
cluster_idx = find(idx == i);
% 绘制第i个簇的数据点
scatter(data(cluster_idx, 1), data(cluster_idx, 2), 'filled');
end
% 绘制聚类中心
scatter(C(:, 1), C(:, 2), 'r', 'filled', 'MarkerEdgeColor', 'k');
hold off;
% 设置图表标题和坐标轴标题
title('K-means Clustering');
xlabel('Feature 1');
ylabel('Feature 2');
```
上述代码中,首先加载了一个名为data.mat的数据集,然后设置了聚类的个数k为3。然后调用kmeans函数对数据进行聚类,返回了每个数据点所属的簇的索引idx和聚类中心的坐标C。接下来,使用scatter函数绘制了每个簇的数据点,并使用不同的颜色区分了不同的簇,同时绘制了聚类中心。
最后,添加了图表的标题和坐标轴标题。
以上就是一个简单的使用MATLAB实现K-means聚类的代码示例。
利用kmeans算法实现iris r语言
好的,我可以为您提供一个在R语言中使用K-Means算法对Iris数据集进行聚类的示例代码。
首先,我们需要导入Iris数据集和cluster库:
```R
library(datasets)
library(cluster)
data(iris)
```
然后,我们可以选择需要聚类的特征,这里我们选择花萼长度(Sepal.Length)和花萼宽度(Sepal.Width)这两个特征:
```R
X = iris[, c("Sepal.Length", "Sepal.Width")]
```
接下来,我们可以使用KMeans函数对数据进行聚类:
```R
kmeans.result = kmeans(X, centers = 3, nstart = 20)
```
这里我们将数据分为3个簇,并且使用nstart参数指定进行20次随机初始化。
最后,我们可以将聚类结果可视化:
```R
plot(X, col = kmeans.result$cluster, pch = 16)
points(kmeans.result$centers, col = 1:3, pch = 23, cex = 3)
```
这段代码会绘制出一个散点图,其中每个数据点的颜色表示它所属的簇,三个不同形状的点表示三个簇的质心。
希望这个示例代码能够对您有所帮助,如果您还有其他问题,请随时问我。
阅读全文