利用k均值聚类算法对数据集进行创建,并利用兰德系数检验聚类效果,并给出正确率,数据集样本数量至少为1000,三个以上特征值,样本标签至少为两个分类的完整代码
时间: 2024-03-03 16:46:54 浏览: 33
K均值聚类算法的实现,还有样本集
下面是一个利用 k 均值聚类算法对数据集进行聚类,并利用兰德系数检验聚类效果的完整 Python 代码示例。这里我们使用 `sklearn` 库中的 `make_blobs` 函数随机生成一个包含 1000 个样本、3 个特征值、2 个分类标签的数据集:
```python
import numpy as np
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import adjusted_rand_score
# 随机生成数据
X, y = make_blobs(n_samples=1000, centers=2, n_features=3, random_state=42)
# 创建一个 KMeans 对象,指定聚类数量为 2
kmeans = KMeans(n_clusters=2)
# 训练模型
kmeans.fit(X)
# 获取聚类结果
labels = kmeans.labels_
# 计算兰德系数
score = adjusted_rand_score(y, labels)
# 输出兰德系数
print('兰德系数:', score)
```
这段代码中,我们首先使用 `make_blobs` 函数生成了一个包含 1000 个样本、3 个特征值、2 个分类标签的数据集。然后,我们创建了一个 `KMeans` 对象,并将聚类数量设置为 2。接下来,我们用 `fit` 方法训练模型,并用 `labels_` 属性获取聚类结果。最后,我们使用 `adjusted_rand_score` 函数计算兰德系数,并输出结果。
兰德系数是聚类效果的一个评价指标,取值范围为 [-1, 1]。当兰德系数为 1 时,表示聚类效果完美;当兰德系数为 0 时,表示聚类效果与随机分配类别的效果相同;当兰德系数为负数时,表示聚类效果比随机分配类别的效果还要差。因此,兰德系数越大,聚类效果越好。
阅读全文