自定义数据集,使用scikit-learn 中K均值包 进行聚类

1. 引言

K均值聚类是一种无监督学习方法,用于将数据集分为多个簇。通过计算数据点之间的距离并将它们分配到最近的簇中心,K均值算法可以帮助我们发现数据中的自然结构。

2. 数据集创建

首先,我们使用numpy创建一个自定义的二维数据集:

复制代码
import numpy as np

# 创建一个简单的二维数据集
X = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]])
3. 导入K均值并进行聚类

接下来,我们使用scikit-learn中的K均值算法进行聚类。

复制代码
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 使用K均值聚类,设定簇的数量为2
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)

# 获取簇的中心和标签
centroids = kmeans.cluster_centers_
labels = kmeans.labels_
4. 可视化结果

为了更好地理解聚类结果,我们可以使用matplotlib来可视化数据点和簇的中心。

复制代码
# 绘制数据点和簇的中心
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')

# 标出簇的中心
plt.scatter(centroids[:, 0], centroids[:, 1], s=200, c='red', marker='X')
plt.show()
5. 总结

通过K均值聚类,我们成功地将数据集分为两个簇,并通过可视化方式直观展示了聚类结果。K均值算法的核心思想是通过计算点与簇中心的距离进行分组,并不断迭代优化簇的中心位置。

相关推荐
龙侠九重天10 小时前
Embedding 模型深度使用——语义搜索与聚类
人工智能·深度学习·数据挖掘·大模型·llm·embedding·聚类
guygg8811 小时前
贝叶斯非局部均值降噪算法C语言实现
c语言·算法·均值算法
Omics Pro1 天前
填补蛋白质组深度学习预处理教学空白
人工智能·python·深度学习·plotly·numpy·pandas·scikit-learn
龙腾AI白云1 天前
AI前沿技术
plotly·scikit-learn·dash
城事漫游Molly1 天前
方差分析(ANOVA)入门——比较三组或更多组均值的利器
大数据·算法·均值算法·论文笔记·科研统计
yu85939583 天前
基于 QT5.7.0 的八线激光雷达点云聚类实现
开发语言·qt·聚类
mingo_敏3 天前
目标检测mAP指标:与生产级精确率/漏检率/误检率的相关性及改造方案
目标检测·均值算法·目标跟踪
Captain_Data5 天前
Python机器学习实战:用Scikit-learn从0构建信用风险评分模型(含WOE编码+AUC/KS/PSI评估+评分卡转换)
python·机器学习·数据分析·scikit-learn·风控建模
jerryinwuhan5 天前
面向校园场景的网络舆情文本分类、情感分析与聚类预警系统
分类·数据挖掘·聚类
SimpleLearingAI6 天前
聚类算法详解
算法·数据挖掘·聚类