k-means聚类代码
时间: 2023-11-16 16:04:37 浏览: 88
以下是k-means聚类的代码示例:
```python
from sklearn.datasets import make_moons
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成make_moons数据
X, y = make_moons(n_samples=200, noise=0.1, random_state=42)
# 进行k-means聚类
kmeans = KMeans(n_clusters=2, random_state=42)
y_pred = kmeans.fit_predict(X)
# 可视化聚类结果
plt.scatter(X[y_pred==0, 0], X[y_pred==0, 1], c='blue', label='Cluster 1')
plt.scatter(X[y_pred==1, 0], X[y_pred==1, 1], c='red', label='Cluster 2')
plt.legend()
plt.show()
```
以上代码使用了Scikit-learn中的make_moons方法生成数据,然后使用KMeans进行聚类,可视化结果。在此代码示例中,将数据聚类为2类,因此n_clusters参数为2。
相关问题
给出k-means聚类代码,引入兰德指数评价聚类结果
以下是使用Python实现的k-means聚类代码,并引入兰德指数评价聚类结果:
```python
from sklearn.cluster import KMeans
from sklearn.metrics import adjusted_rand_score
import numpy as np
# 生成样本数据
X = np.random.rand(50, 2)
# 定义k值
k = 3
# 进行k-means聚类
kmeans = KMeans(n_clusters=k, random_state=0).fit(X)
# 输出聚类结果
print("聚类结果:", kmeans.labels_)
# 计算兰德指数
y_true = [0]*16 + [1]*17 + [2]*17
y_pred = kmeans.labels_
rand_index = adjusted_rand_score(y_true, y_pred)
print("兰德指数:", rand_index)
```
在上述代码中,我们使用sklearn库中的KMeans模型进行聚类,然后使用adjusted_rand_score函数计算兰德指数。在计算兰德指数时,需要提供真实的分类标签y_true和聚类结果y_pred。在本例中,我们使用了一个人工生成的样本数据,并将其分为三个类别,然后使用k-means聚类算法对其进行聚类,并计算兰德指数。
matlab的对excel数据的k-means聚类代码
MATLAB可以使用k-means聚类算法来对Excel数据进行分析。最常用的代码是:[idx,C] = kmeans(X,K),其中X是您的数据数组,K是您想要的聚类数。idx是一个标签数组,说明每个数据点属于哪个聚类,而C是一个K×N矩阵,每列都是一个聚类中心点的坐标。
阅读全文