k-means算法python代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k-means算法python代码
K-means算法是常用的聚类算法之一,它的目标是将数据分为K 个不同的类别。
下面是利用Python实现K-means算法的代码:```
import numpy as np
# 生成随机数据
def generate_data(num=1000, k=4):
data = []
for i in range(k):
center = np.random.rand(2) * 10
for j in range(num):
point = center + np.random.randn(2)
data.append(point)
return np.array(data)
# 计算距离
def distance(point, center):
return np.sum((point - center) ** 2)
# 根据数据点和聚类中心计算分类结果
def classify(data, centers):
labels = []
k = len(centers)
for point in data:
distances = [distance(point, centers[i]) for i in range(k)]
label = np.argmin(distances)
labels.append(label)
return np.array(labels)
# 计算聚类中心
def compute_centers(data, labels):
k = len(set(labels))
centers = []
for i in range(k):
center = np.mean(data[labels == i], axis=0)
centers.append(center)
return np.array(centers)
# K-means算法
def k_means(data, k, iter_num=10):
centers = generate_data(k=k)
for i in range(iter_num):
labels = classify(data, centers)
centers = compute_centers(data, labels)
return labels, centers
```
以上代码将生成随机数据、计算距离、根据数据点和聚类中心计
算分类结果、计算聚类中心和K-means算法五个步骤分别用函数实现。
在main函数中调用这些函数来完成聚类算法的实现。