kmeans算法不同簇显示不同颜色的代码
时间: 2024-05-04 17:22:28 浏览: 10
下面是使用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。
相关问题
pandas聚类结果不同簇不同颜色代码代码
以下是一个示例代码,可以根据聚类结果将不同的簇标记为不同的颜色:
```python
import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成示例数据集
data = pd.DataFrame({
'x': [12, 20, 28, 18, 29, 33, 24, 45, 45, 52, 51, 52, 55, 53, 61, 64, 69, 72],
'y': [39, 36, 30, 52, 54, 46, 55, 59, 63, 70, 66, 63, 58, 23, 14, 8, 19, 7]
})
# 使用KMeans算法进行聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(data)
# 将聚类结果与原始数据集合并
data['cluster'] = pd.Series(kmeans.labels_, index=data.index)
# 绘制散点图,并按簇分别标记不同颜色
colors = ['r', 'g', 'b']
for i in range(len(colors)):
cluster_data = data[data['cluster'] == i]
plt.scatter(cluster_data['x'], cluster_data['y'], color=colors[i])
plt.show()
```
在上述示例中,我们生成了一个包含x和y两列数据的数据集,并使用KMeans算法将其聚成了三个簇。然后,我们将聚类结果与原始数据集合并,并使用不同的颜色标记不同的簇。最后,绘制出散点图展示聚类结果。你可以根据自己的需求修改代码来适应不同的数据集和聚类算法。
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聚类的代码示例。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)