[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示附代码。

[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示附代码。什么是 k means 分析 头条 William 数据分析 看原版 想象一下 你有一堆五颜六色的糖果 你想把它们按照颜色分成几堆 k means 分析就是这么一个自动分类的过程 它会根据糖果的颜色特征 把它们分成若干个组 每个组里的糖果颜色都

大家好,欢迎来到IT知识分享网。

什么是k-means分析?【头条@William数据分析,看原版】

想象一下,你有一堆五颜六色的糖果,你想把它们按照颜色分成几堆。k-means分析就是这么一个自动分类的过程。它会根据糖果的颜色特征,把它们分成若干个组,每个组里的糖果颜色都比较相似。

[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示附代码。

更专业一点说,k-means分析是一种常用的聚类算法,它会将数据集中的数据点分成k个不同的簇。每个簇都有一个中心点,这个中心点就是簇中所有数据点的平均值。算法的目标是使得每个数据点都属于离它最近的中心点对应的簇,从而使得簇内的点尽可能相似,簇间的点尽可能不同。

k-means分析的应用场景

k-means分析在很多领域都有广泛的应用,比如:

  • 市场细分: 将客户按照消费习惯、兴趣爱好等特征分成不同的群体,以便针对性地进行营销。
  • 图像分割: 将图像分成不同的区域,以便进行目标识别或图像压缩。
  • 文本聚类: 将文本文档分成不同的主题,以便进行信息检索或文本分类。
  • 异常检测: 通过发现与其他数据点距离较远的点来识别异常数据。
[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示附代码。

[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示附代码。

k-means分析的步骤

k-means算法的步骤如下:

  1. 选择k值: 首先确定要将数据分成多少个簇。这个值的选择会影响最终的聚类结果。
  2. 随机初始化中心点: 在数据集中随机选择k个点作为初始的簇中心。
  3. 分配数据点: 计算每个数据点到各个簇中心的距离,将每个数据点分配到距离它最近的簇中。
  4. 更新中心点: 计算每个簇中所有数据点的平均值,将平均值作为新的簇中心。
  5. 重复步骤3和4: 重复步骤3和4,直到簇中心不再发生明显变化或达到最大迭代次数。
[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示附代码。

代码实现:

# k-means聚类分析可视化展示 # author :头条@William数据分析 # date : 2024/9/29 import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans # 生成示例数据 np.random.seed(0) X = np.random.rand(200, 2)*10 # 进行K-means聚类 k = 5 kmeans = KMeans(n_clusters=k) kmeans.fit(X) y_kmeans = kmeans.predict(X) centers = kmeans.cluster_centers_ # 绘制聚类结果 plt.figure(figsize=(12, 6)) # 使用viridis颜色映射 colors = plt.cm.viridis(np.linspace(0, 1, k)) # 绘制原始数据点 plt.subplot(1, 2, 1) plt.scatter(X[:, 0], X[:, 1], c='gray', s=50) plt.title('Original Data Points') # 绘制聚类结果和连线 plt.subplot(1, 2, 2) for i in range(k): # 绘制簇的数据点 plt.scatter(X[y_kmeans == i, 0], X[y_kmeans == i, 1], c=colors[i], s=50, label=f'Cluster {i}') # 绘制簇中心 plt.scatter(centers[i, 0], centers[i, 1], c=colors[i], s=200, alpha=0.75, marker='X', label=f'Center {i}') # 绘制数据点与簇中心的连线 for point in X[y_kmeans == i]: plt.plot([point[0], centers[i, 0]], [point[1], centers[i, 1]], color=colors[i], linestyle='-', linewidth=0.5) plt.title(f'K-means Clustering(k={k})') plt.xlabel('Feature 1') plt.ylabel('Feature 2') plt.legend() plt.savefig(f'聚类对比(k={k}).jpg') plt.show()

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/178177.html

(0)
上一篇 2025-05-07 22:45
下一篇 2025-05-08 07:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信