kmeans python实现代码
时间: 2023-11-04 22:15:52 浏览: 37
当然可以,以下是一个简单的kmeans算法的Python实现代码:
```
import numpy as np
def kmeans(X, K, max_iters=100):
# 随机初始化聚类中心
centroids = X[np.random.choice(range(len(X)), K, replace=False)]
for i in range(max_iters):
# 计算每个样本所属的聚类中心
distances = np.sqrt(((X - centroids[:, np.newaxis])**2).sum(axis=2))
cluster = np.argmin(distances, axis=0)
# 更新聚类中心
for k in range(K):
centroids[k] = X[cluster==k].mean(axis=0)
return cluster, centroids
```
希望能帮到你!
相关问题
kmeans算法python代码实现
下面是一个简单的K-Means算法的Python实现:
```
import numpy as np
import random
def kmeans(data, k, max_iter=100):
# 随机初始化聚类中心
centroids = random.sample(list(data), k)
for i in range(max_iter):
# 分配数据点到簇
clusters = [[] for _ in range(k)]
for point in data:
closest_centroid = np.argmin([np.linalg.norm(point - c) for c in centroids])
clusters[closest_centroid].append(point)
# 更新聚类中心
new_centroids = [np.mean(cluster, axis=0) for cluster in clusters]
# 判断是否收敛
if np.allclose(centroids, new_centroids):
break
centroids = new_centroids
return clusters, centroids
```
其中,`data`为输入的数据点,类型为Numpy数组;`k`为簇的数量;`max_iter`为最大迭代次数。返回值为聚类结果和最终的聚类中心。
这个实现中,使用了Numpy库中的函数计算欧氏距离和均值,可以大大提高计算效率。在实际应用中,可以根据需要对算法进行优化,如使用并行计算或采用更高效的距离计算方法等。
kmeans python代码
以下是KMeans算法的Python代码示例:
```python
from sklearn.cluster import KMeans
import numpy as np
# 构造数据
X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
# 定义KMeans模型
kmeans = KMeans(n_clusters=2, random_state=0)
# 训练模型
kmeans.fit(X)
# 打印聚类结果
print(kmeans.labels_)
```
在上面的代码中,我们使用了`scikit-learn`库中的`KMeans`类来实现KMeans算法。我们首先构造了一个二维数据集`X`,然后定义了一个KMeans模型并将其训练。在训练完成后,我们可以通过`labels_`属性来获取每个数据点所属的簇的标签。