K-means代码实现
时间: 2023-12-10 20:33:15 浏览: 25
以下是K-means算法的Python代码实现,其中包括了K-means算法的基本思想和核心步骤:
```python
import numpy as np
class KMeans:
def __init__(self, k=2, max_iter=100):
self.k = k
self.max_iter = max_iter
def fit(self, X):
self.centroids = []
for i in range(self.k):
self.centroids.append(X[np.random.choice(range(len(X)))])
for i in range(self.max_iter):
clusters = [[] for _ in range(self.k)]
for x in X:
distances = [np.linalg.norm(x - c) for c in self.centroids]
cluster_idx = np.argmin(distances)
clusters[cluster_idx].append(x)
prev_centroids = self.centroids.copy()
for j in range(self.k):
self.centroids[j] = np.mean(clusters[j], axis=0)
if np.allclose(prev_centroids, self.centroids):
break
def predict(self, X):
distances = [np.linalg.norm(X - c, axis=1) for c in self.centroids]
cluster_idx = np.argmin(distances, axis=0)
return cluster_idx
```