首页 > ChatAI > AI文库 >

python自编程实现k-means聚类模型并画出图像

分享 55671

分享

好的,下面是Python自编程实现k-means聚类模型并画出图像的步骤:

1. 导入必要的库

```python
import numpy as np
import matplotlib.pyplot as plt
```

2. 生成数据集

```python
# 生成数据集
np.random.seed(42)
X = np.random.randn(100, 2)
```

3. 定义k-means聚类模型

```python
class KMeans:
def __init__(self, k=2, max_iter=100):
self.k = k
self.max_iter = max_iter

def fit(self, X):
# 随机初始化聚类中心
self.centers = X[np.random.choice(len(X), self.k, replace=False)]

for i in range(self.max_iter):
# 计算每个样本到聚类中心的距离
distances = np.sqrt(((X - self.centers[:, np.newaxis])**2).sum(axis=2))

# 分配样本到最近的聚类中心
labels = np.argmin(distances, axis=0)

# 更新聚类中心
for j in range(self.k):
self.centers[j] = X[labels == j].mean(axis=0)

self.labels = labels
```

4. 使用k-means聚类模型进行聚类

```python
# 使用k-means聚类模型进行聚类
kmeans = KMeans(k=3)
kmeans.fit(X)
```

5. 可视化聚类结果

```python
# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels)
plt.scatter(kmeans.centers[:, 0], kmeans.centers[:, 1], marker='*', s=200, c='r')
plt.show()
```

完整代码如下:

```python
import numpy as np
import matplotlib.pyplot as plt

class KMeans:
def __init__(self, k=2, max_iter=100):
self.k = k
self.max_iter = max_iter

def fit(self, X):
# 随机初始化聚类中心
self.centers = X[np.random.choice(len(X), self.k, replace=False)]

for i in range(self.max_iter):
# 计算每个样本到聚类中心的距离
distances = np.sqrt(((X - self.centers[:, np.newaxis])**2).sum(axis=2))

# 分配样本到最近的聚类中心
labels = np.argmin(distances, axis=0)

# 更新聚类中心
for j in range(self.k):
self.centers[j] = X[labels == j].mean(axis=0)

self.labels = labels

# 生成数据集
np.random.seed(42)
X = np.random.randn(100, 2)

# 使用k-means聚类模型进行聚类
kmeans = KMeans(k=3)
kmeans.fit(X)

# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels)
plt.scatter(kmeans.centers[:, 0], kmeans.centers[:, 1], marker='*', s=200, c='r')
plt.show()
```

相关推荐

新征程上,青年如何握紧接力棒,走好奋斗路为主题写一篇思想报告

AI文库

神秘岛高三读后感700字

高三

韩国请回答1988电视剧观后感

电视剧观后感

九年级数学二次根式知识点

别名数学

语文教学工作计划模板

工作计划范文

热门图文

上一篇:使用python自编程实现聚类模型并画出图像

下一篇:聚天下英才筑强国之基论文