k-means聚类算法实现代码
时间: 2023-09-29 22:11:21 浏览: 49
可以为您提供k-means聚类算法的实现代码。以下是Python语言实现的代码示例:
```python
import numpy as np
class KMeans:
def __init__(self, k=3, max_iter=100):
self.k = k
self.max_iter = max_iter
def fit(self, X):
self.centroids = X[np.random.choice(X.shape[0], self.k, replace=False)]
for i in range(self.max_iter):
labels = self.predict(X)
new_centroids = np.array([X[labels == j].mean(axis=0) for j in range(self.k)])
if np.allclose(self.centroids, new_centroids):
break
self.centroids = new_centroids
def predict(self, X):
return np.argmin(np.sqrt(((X[..., np.newaxis] - self.centroids.T)**2).sum(axis=1)), axis=1)
```
其中,`KMeans`是一个类,`k`表示聚类的簇数,`max_iter`表示最大迭代次数。`fit`方法是用来训练模型的,`X`为输入数据。`predict`方法是用来预测数据所属聚类的。
需要注意的是,这里的k-means聚类算法实现并不是最优化的算法,只是一个基本的实现。如果需要更高效更准确的算法,可以尝试其他算法,比如k-means++算法。