k-means算法示例代码python
时间: 2023-10-30 19:05:27 浏览: 116
主要介绍了Python中基于K-means聚类算法的图像分割的示例代码。以下是该示例代码的一部分:
```python
import numpy as np
from sklearn.cluster import KMeans
# 生成示例数据
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_)
```
在上述示例代码中,首先导入了所需的库,然后创建了一个包含示例数据的数组X。接下来,创建了一个KMeans对象,并设置了聚类数目为2。然后,利用数据X对KMeans对象进行训练,最后打印出聚类结果。
注意:为了运行示例代码,需要安装scikit-learn库。
相关问题
k-means聚类算法代码python
以下是Python中的k-means聚类算法示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
def kmeans(X, K, max_iters):
centroids = X[np.random.choice(len(X), K, replace=False)]
for i in range(max_iters):
# 计算每个点属于哪个簇
C = np.argmin(np.sqrt(((X - centroids[:, np.newaxis])**2).sum(axis=2)), axis=0)
# 重新计算簇中心点
centroids = np.array([X[C == k].mean(axis=0) for k in range(K)])
return C, centroids
# 生成数据
np.random.seed(42)
X = np.random.randn(50, 2)
# 聚类
C, centroids = kmeans(X, K=3, max_iters=100)
# 可视化
plt.scatter(X[:, 0], X[:, 1], c=C)
plt.scatter(centroids[:, 0], centroids[:, 1], marker='X', s=200, linewidths=3, color='r')
plt.show()
```
说明:
- `X`:需要聚类的数据,每一行代表一个样本;
- `K`:簇的数量;
- `max_iters`:最大迭代次数;
- `centroids`:簇中心点;
- `C`:每个点属于的簇的索引。
k-means聚类算法实现python
可以通过使用scikit-learn库中的KMeans模块来实现k-means聚类算法。以下是一个简单的python代码示例:
```python
from sklearn.cluster import KMeans
import numpy as np
# 生成测试数据
X = np.random.randn(100, 2)
# 创建KMeans模型
kmeans = KMeans(n_clusters=3, random_state=0)
# 训练模型并进行聚类
kmeans.fit(X)
# 打印聚类结果
print(kmeans.labels_)
```
在此示例中,我们使用scikit-learn的KMeans模块生成了一个聚类模型,然后通过fit()方法对数据进行训练和聚类操作。最终,我们可以通过kmeans.labels_属性获取聚类结果。
阅读全文