k-means++聚类算法python实例
时间: 2023-09-30 21:02:08 浏览: 161
下面是一个使用k-means++聚类算法的Python实例:
```python
import numpy as np
from sklearn.cluster import KMeans
# 生成随机数据
X = np.random.randn(100, 2)
# 使用k-means++聚类算法
kmeans = KMeans(n_clusters=3, init='k-means++', max_iter=300, n_init=10, random_state=0)
pred_y = kmeans.fit_predict(X)
# 可视化聚类结果
import matplotlib.pyplot as plt
plt.scatter(X[:,0], X[:,1])
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red')
plt.show()
```
此代码将生成一个包含100个点的随机数据集,并使用k-means++聚类算法将其分成三个簇。最后,使用matplotlib库可视化聚类结果。
相关问题
K-Means聚类算法Python实例
好的,我可以帮你解决这个问题。K-Means聚类算法是一种常见的无监督学习算法,它可以将数据集分成K个簇。Python中有很多库可以实现K-Means算法,比如Scikit-Learn、NumPy和SciPy等。以下是一个使用Scikit-Learn实现K-Means聚类算法的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).fit(X)
# 预测每个样本的簇标签
labels = kmeans.predict(X)
# 打印每个样本的簇标签
print(labels)
```
这个示例代码将数据集分成了2个簇,并打印出每个样本的簇标签。你可以根据自己的需要修改代码来实现你的K-Means聚类算法。
K-means聚类算法python实例
K-means是一种常用的无监督学习聚类算法,它将数据集划分为K个互不相交的簇,每个簇内的数据点彼此相似,而簇与簇之间差异较大。以下是使用Python的sklearn库进行K-means聚类的一个简单示例:
```python
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
# 假设我们有二维数据
X = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6],
[9, 11], [10, 9], [12, 10], [14, 8], [13, 8]])
# 创建KMeans模型并设置簇的数量为3
kmeans = KMeans(n_clusters=3)
# 训练模型
kmeans.fit(X)
# 预测数据点所属的簇
labels = kmeans.labels_
# 打印聚类中心
centroids = kmeans.cluster_centers_
print("Centroids:")
print(centroids)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(centroids[:, 0], centroids[:, 1], marker='x', color='r')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('K-Means Clustering Result')
plt.show()
```
在这个例子中,我们首先创建了一个KMeans实例,并设定簇数为3。然后通过`fit`方法训练模型,得到每个数据点的聚类标签。最后,我们将聚类中心标记出来,并可视化结果。
阅读全文