当前位置: 首页 > news >正文

动物园网站建设的可行性分析网站关键词查询网址

动物园网站建设的可行性分析,网站关键词查询网址,绍兴网站建设公司电话,网站被k 申诉📘 Python无监督学习中的聚类:K均值与层次聚类实现详解 无监督学习是一类强大的算法,能够在没有标签的数据集中发现结构与模式。聚类作为无监督学习的重要组成部分,在各类数据分析任务中广泛应用。本文将深入讲解聚类算法中的两种…

📘 Python无监督学习中的聚类:K均值与层次聚类实现详解

无监督学习是一类强大的算法,能够在没有标签的数据集中发现结构与模式。聚类作为无监督学习的重要组成部分,在各类数据分析任务中广泛应用。本文将深入讲解聚类算法中的两种常见方法:K均值聚类和层次聚类,结合Python代码详细介绍它们的实现与应用,帮助理解不同聚类方法的优劣与使用场景。

目录

  1. 🔗 聚类的核心思想与应用场景
  2. 📊 K均值聚类:快速高效的聚类方法
  3. 🔝 层次聚类:基于层次结构的灵活聚类
  4. 🆚 K均值与层次聚类的比较
  5. 🚀 实践:如何选择合适的聚类方法
  6. 🌐 拓展:结合轮廓系数评估聚类效果

1. 🔗 聚类的核心思想与应用场景

聚类是一种将数据划分为多个组(或称为簇)的技术,每个簇内的数据点具有较高的相似性,而簇间的数据点则差异较大。聚类的核心目标是寻找数据的潜在模式和结构,而不依赖于标签信息。

应用场景:

  • 市场细分:根据顾客的购买行为,将其划分为不同的细分市场,便于进行精准营销。
  • 图像分割:将图像分割为多个区域,用于图像处理与分析。
  • 异常检测:通过聚类发现异常数据点,这些数据点通常位于簇的边界之外。

2. 📊 K均值聚类:快速高效的聚类方法

K均值聚类是最常用的聚类算法之一。它通过不断迭代来将数据集分成K个簇,并使得每个簇的中心与其成员数据点之间的距离最小化。K均值算法的主要步骤包括:

  1. 随机选择K个初始中心点(即质心)。
  2. 将每个数据点分配给距离最近的质心。
  3. 重新计算每个簇的质心。
  4. 重复步骤2和3,直到质心不再发生显著变化。

📌 实现K均值聚类

在Python中,使用KMeans类可以轻松实现K均值聚类。以下代码展示了如何应用K均值对二维数据进行聚类,并可视化结果。

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs# 生成示例数据
X, y = make_blobs(n_samples=300, centers=4, random_state=42, cluster_std=0.60)# 创建K均值聚类模型,设定K=4
kmeans = KMeans(n_clusters=4)# 训练模型并获取聚类标签
kmeans.fit(X)
y_kmeans = kmeans.predict(X)# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')# 可视化质心
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75)
plt.title("K均值聚类结果")
plt.show()

🎯 K均值的特点:

  • 效率高:K均值算法的时间复杂度较低,能够在较大数据集上快速运行。
  • 易于实现:K均值算法简单直观,并且能够在多数任务中表现良好。
  • 局限性:K均值依赖于初始质心的选择,容易陷入局部最优解;此外,K的值需要预先设定,不适用于所有数据集。

代码中,使用make_blobs生成了一个包含4个簇的模拟数据集,并通过KMeans类对数据进行聚类。最终,我们使用Matplotlib可视化了聚类结果,其中红色点表示每个簇的质心。

3. 🔝 层次聚类:基于层次结构的灵活聚类

层次聚类是一种通过创建簇的嵌套层次来进行聚类的算法,分为自底向上(凝聚型)自顶向下(分裂型)两种方法。自底向上的层次聚类开始时将每个数据点视为一个单独的簇,逐渐合并相似簇,直到达到指定的簇数或某一停止条件。它能够生成一棵聚类树,称为树状图

📌 实现层次聚类

在Python中,可以使用AgglomerativeClustering类实现凝聚型层次聚类,并利用dendrogram函数可视化树状图。

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_blobs# 生成示例数据
X, y = make_blobs(n_samples=300, centers=4, random_state=42, cluster_std=0.60)# 使用凝聚层次聚类
agg_clustering = AgglomerativeClustering(n_clusters=4)
y_agg = agg_clustering.fit_predict(X)# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_agg, cmap='viridis')
plt.title("层次聚类结果")
plt.show()# 计算层次聚类的树状图数据
linked = linkage(X, 'ward')# 绘制树状图
plt.figure(figsize=(10, 7))
dendrogram(linked, orientation='top', distance_sort='descending', show_leaf_counts=True)
plt.title("层次聚类树状图")
plt.show()

🎯 层次聚类的特点:

  • 无需预设簇数:层次聚类不需要预先设定K值,能够自动生成簇的层次结构。
  • 结果直观:树状图能够清晰展示数据的聚类层次,便于理解和分析。
  • 计算代价高:层次聚类的时间复杂度较高,在大数据集上表现不如K均值高效。

通过AgglomerativeClustering实现了层次聚类,代码中的dendrogram函数生成了对应的树状图,从图中可以清楚地看到聚类的层次结构。在实际应用中,层次聚类非常适合于数据点较少的场景,或需要对聚类结果进行深入分析的任务。

4. 🆚 K均值与层次聚类的比较

K均值和层次聚类在应用场景和算法特点上各具优势,以下是两者的比较:

特点K均值聚类层次聚类
计算复杂度低,适合大数据集高,适合小数据集
需要预设簇数是,需要预设K值否,可生成层次结构
簇的形状适用于球状簇能处理复杂的簇形
对噪声和异常点的敏感性对异常点敏感相对不敏感
结果可解释性结果较简单树状图提供丰富的解释性

在选择聚类方法时,需要考虑数据集的大小、簇的形状、计算资源以及对聚类结果的要求等因素。K均值在大规模数据上的表现优异,而层次聚类则提供了更多分析层次和解释性。

5. 🚀 实践:如何选择合适的聚类方法

选择聚类方法时,应从以下几个维度进行考量:

  1. 数据规模:K均值算法适合大规模数据集,层次聚类更适合小规模数据集。
  2. 簇的形状:如果簇的形状复杂且非球形,层次聚类往往能给出更合理的划分结果。
  3. 簇数的确定:如果聚类数未知或希望获取层次结构信息,层次聚类是更好的选择;而K均值需要预设K值。
  4. 计算资源:K均值算法在大数据集上的速度优势明显,适合资源有限的情况。

6. 🌐 拓展:结合轮廓系数评估聚类效果

为了客观评估聚类结果的质量,可以

使用轮廓系数。轮廓系数通过比较每个数据点与簇内其他点的距离与其与最近簇的距离,给出聚类效果的度量。

📌 实现轮廓系数评估

from sklearn.metrics import silhouette_score# K均值聚类模型
kmeans = KMeans(n_clusters=4)
kmeans_labels = kmeans.fit_predict(X)# 计算K均值的轮廓系数
kmeans_silhouette = silhouette_score(X, kmeans_labels)
print(f"K均值轮廓系数: {kmeans_silhouette}")# 层次聚类模型
agg_clustering = AgglomerativeClustering(n_clusters=4)
agg_labels = agg_clustering.fit_predict(X)# 计算层次聚类的轮廓系数
agg_silhouette = silhouette_score(X, agg_labels)
print(f"层次聚类轮廓系数: {agg_silhouette}")

通过计算轮廓系数,可以量化聚类的紧密程度与分离度,从而辅助选择最佳的聚类方法。

http://www.dt0577.cn/news/13314.html

相关文章:

  • 南昌网站建设价格360网站推广怎么做
  • 青岛手机网站制作宁波seo怎么做优化
  • 桂林市防疫最新政策搜索引擎优化的主要手段
  • 黑龙江建设厅网站账户竞价托管费用
  • 佛山网站建设品牌网站收录入口申请查询
  • 网站市场推广500强企业seo服务商
  • 美国外贸网站建设镇江百度推广公司
  • 品牌网站官网seo简单速排名软件
  • 哈尔滨百度seo公司抖音搜索seo代理
  • 北京活动网站制作自己如何建立网站
  • 百色做网站百度热搜榜排行
  • 企业官方网站如何做蓝v认证武汉网络推广自然排名
  • 网站建设的价值是什么网络推广服务外包
  • 老域名重新做网站seo关键词排名优化报价
  • 国外销售网站怎样建设怎么让百度搜出自己
  • 京东网站建设过程百度竞价最低点击一次多少钱
  • 顺德网站设计成人用品推广网页
  • 打码网站怎么做品牌宣传文案范文
  • 门户网站源码入驻app开发费用
  • 做色情网站需要多少钱广告图片
  • 排版设计说明系统优化大师
  • 免费网站建设知识百度网络推广怎么收费
  • 做网站加模块长治seo顾问
  • 想建一个自己的网站北京seo优化wyhseo
  • 视频直播网站建设费用百度一下你就知道官网网页版
  • 深圳福田网站优化网络营销培训学校投资网站建设方案
  • 主做收影视出版的小说网站软文
  • 网站建站案东营优化路网
  • 学校网站怎么查询录取长沙网站制作推广
  • 设计网站包含的功能模块网络推广员的前景