96SEO 2026-02-20 07:51 0
href="https://www.cnblogs.com/ljbguanli/p/19620580"

aria-level="2">深入解析:【K-Means深度探索(十一)】K-Means
xmlns="http://www.w3.org/2000/svg"> style="-webkit-tap-highlight-color: src="https://i-blog.csdnimg.cn/direct/01eb48d3d35446e79e0e3a1796ee4a45.png#pic_center">d="M5,0
rgba(0,
永远都不秃头的程序员(互关)
class="toc">
算法的“定位”与“短板”简述
闪耀时刻
其他聚类算法:如何选择最合适的工具?
亲爱的读者朋友们,欢迎回到我们的“K-Means深度探索”系列!
我们已经携手走过了
的理论、实践、优化与应用,甚至探访了它的“亲戚”们。
现在,你对
算法的理解,已经从入门级小白跃升为资深玩家了!
然而,在数据科学的宏大战场上,K-Means
并非唯一的“武器”。
如同一个经验丰富的将军,我们不可能只依赖一种兵器打天下。
不同的数据特性、不同的业务需求,需要我们从聚类算法的“军械库”中,挑选出最合适的那件“神兵利器”。
如果错误地选择了工具,轻则事倍功半,重则可能导致项目失败,得出错误的结论。
今天,我们将把
请下“神坛”,与两位同样大名鼎鼎、且解决问题角度截然不同的聚类算法进行一番“切磋”:DBSCAN(基于密度的空间聚类应用与噪声)和层次聚类(Hierarchical
Clustering)。
通过深入对比它们的原理、优劣和适用场景,你将学会如何根据你的数据特点和聚类目标,做出最明智的算法选择。
准备好了吗?
让我们一起磨砺你的“选择智慧”,成为聚类算法的“战场指挥官”!
⚔️
算法的“定位”与“短板”简述
在开始与其他算法对比之前,让我们快速回顾一下
的核心特性:
核心思想:
个簇,使得簇内方差最小化。
优点:
简单、高效、易于实现,对于球形、大小相近且密度均匀的簇效果很好。
局限性:
的选择敏感。
无法很好地处理任意形状、非凸形的簇(我们已经在第六篇文章中见过它的“滑铁卢”)。
异常值会拉偏质心。
倾向于发现大小和密度相近的簇。
理解这些,是我们选择其他聚类算法的出发点。
id="_42">理论解读:基于密度的聚类
DBSCAN
是一个非常强大的基于密度的聚类算法。
它不需要预设簇的数量,能够发现任意形状的簇,并且能有效识别噪声点(异常值)。
DBSCAN
的核心思想是:“足够密集的区域形成簇,而稀疏的区域则被认为是噪声。
”
它通过两个关键参数来定义“密度”:
epsmathnormal">p
epsmathnormal">p
的邻域。
min_samples:mathnormal">p
epsmathnormal">p
自身)。
基于这两个参数,DBSCAN
将数据点分为三类:
min_samples。
min_samples,但它在某个核心点的
eps既不是核心点也不是边界点。
聚类过程:从一个未被访问的核心点开始,找到所有密度可达(Density-Reachable)的点,从而形成一个簇。
这个过程持续进行,直到所有核心点都被访问过。
的优势与劣势
优势:
最显著的优势,特别适合处理非球形、复杂的簇结构。
簇的数量由算法根据数据密度自动确定。
能够很好地区分数据点和噪声点。
劣势:
eps这两个参数非常敏感,不同参数组合可能产生截然不同的结果。
参数选择需要经验和领域知识。
eps参数能够同时良好地识别所有簇。
在高维空间中,定义“密度”变得困难,eps
的选择更加复杂。
我们将使用之前
punctuation">.preprocessing
punctuation">(
n_samplespunctuation">.
fit_transformpunctuation">.
fit_predictpunctuation">(
X_scaledpunctuation">(
dbscan_labelspunctuation">(
dbscan_labelspunctuation">.
countpunctuation">{
n_clusterspunctuation">}
punctuation">{
n_noisepunctuation">}
punctuation">.
figurepunctuation">(
figsizepunctuation">(
dbscan_labelspunctuation">.
Spectralpunctuation">.
linspacepunctuation">(
unique_labelspunctuation">(
unique_labelspunctuation">(
dbscan_labelspunctuation">[
class_member_maskpunctuation">}
punctuation">.
titlepunctuation">.
xlabelpunctuation">.
ylabelpunctuation">.
legendpunctuation">)
运行代码,你会看到
成功地识别出了两个月牙形簇,并且能够将一些稀疏的数据点标记为噪声,展现了
无法企及的优势!
id="_130">理论解读:层层聚合或分裂
层次聚类(Hierarchical
个簇,而是通过构建一个嵌套的簇层次结构来组织数据。
这个层次结构通常以**树状图(Dendrogram)**的形式展示,清晰地反映了数据点和簇之间的亲疏关系。
层次聚类主要有两种类型:
个簇),然后逐步将最相似的簇合并,直到所有数据点都合并成一个大簇,或者达到预设的停止条件。
从所有数据点作为一个大簇开始,然后逐步将簇分裂成更小的簇,直到每个数据点都成为一个独立的簇,或者达到预设的停止条件。
聚合型层次聚类的核心要素:
距离度量:
一样,需要定义数据点之间的距离。
连接标准
这是定义“簇与簇之间距离”的关键。
常见的有:
目标类似)。
计算两个簇中所有点对之间平均距离。
两个簇中最远点之间的距离(最大距离)。
两个簇中最近点之间的距离(最小距离)。
id="_149">
层次聚类的优势与劣势优势:
用户可以根据生成的树状图,在不同层级“剪切”来决定簇的数量。
能够揭示数据点之间的多层次关系,这在某些领域(如生物分类、语言学)非常有价值。
树状图直观展现聚类过程和结构。
Linkage),可以发现非球形的簇。
劣势:
尤其是对于大型数据集,需要计算所有点对之间的距离矩阵,空间复杂度和时间复杂度都非常高(通常是
mtight">3
class="mclose">)
mtight">2
class="mclose">)
),难以处理海量数据。容易受到噪声点的影响,导致“链式效应”。
从树状图确定最佳簇数量可能具有主观性。
id="_163">
代码实践:构建数据的“家谱图”我们将使用
sklearnAgglomerativeClustering
scipy.cluster.hierarchy
punctuation">.cluster
class="token
数据准备:生成一些有清晰层次结构或不规则形状潜力的数据
punctuation">(
n_samplesclass="token
punctuation">.
fit_transformclass="token
punctuation">(
X_scaledclass="token
punctuation">.
figureclass="token
punctuation">(
figsizeclass="token
punctuation">(
linkedclass="token
string">'descending'
class="token
punctuation">.
titleclass="token
punctuation">.
xlabelclass="token
punctuation">.
ylabelclass="token
punctuation">(
n_clustersclass="token
operator">=
k_clusters_hierarchicalclass="token
punctuation">.
fit_predictclass="token
punctuation">(
X_scaledclass="token
punctuation">.
figureclass="token
punctuation">(
figsizeclass="token
punctuation">.
scatterclass="token
punctuation">(
X_scaledclass="token
operator">=
hierarchical_labelsclass="token
punctuation">.
titleclass="token
punctuation">{
k_clusters_hierarchicalclass="token
punctuation">}
class="token
punctuation">.
xlabelclass="token
punctuation">.
ylabelclass="token
punctuation">)
运行代码,你将看到一个树状图,你可以通过观察图中的“长线”或“分支”来决定在哪里“剪断”,从而得到合适的簇数量。
然后,可视化结果会展示层次聚类根据你选择的
id="KMeans_VS__215">K-Means
其他聚类算法:如何选择最合适的工具?
现在,我们总结一下
和层次聚类的特点,并提供一个选择框架:
align="left">层次聚类(聚合型) | ||||
|---|---|---|---|---|
K | align="left">簇形状 | align="left">任意形状 | ||
align="left">噪声处理 | align="left">敏感align="left">密度处理 | align="left">倾向于均匀密度和大小 | align="left">适合均匀密度,难处理密度差异大 | align="left">适合均匀密度,易受链式效应影响 |
align="left">计算效率 | align="left">高class="mclose">)) | align="left">中class="mclose">)
| align="left">低mtight">3 class="mclose">)
| |
align="left">结果解释 | align="left">提供层次结构,树状图直观 | |||
align="left">参数敏感 | align="left">对align="left">对连接标准和“剪枝”敏感 |
**选择策略:像侦探一样思考!
你对
有先验知识吗?
如果你明确知道要分成几个簇(比如业务要求),并且期望的簇是球形的,那么
效率高、效果好。
或层次聚类更合适。
你期望的簇是什么形状?
可能是首选。
是强项。
层次聚类在某些连接标准下也能处理。
你的数据包含噪声和异常值吗?
需要识别它们吗?
和层次聚类也可以考虑,但可能需要预处理步骤来去除异常值。
你的数据量有多大?
和层次聚类会非常慢。
你是否需要了解簇之间的层次关系?
层次聚类可以提供一个很好的可视化。
你需要硬性划分还是模糊划分?
(见上一篇文章)。
最佳实践:没有最好的算法,只有最适合的算法。
往往需要在不同算法之间进行尝试,结合可视化、领域知识和聚类评估指标(如轮廓系数),才能找到最符合数据本质和业务需求的聚类方案。
id="_256">
小结与展望:数据世界的无限可能,你来探索!恭喜你!
现在的你已不仅熟练掌握
和层次聚类这两种重要算法,并具备了根据场景选择最优解的能力。
可以说,你已经成为一名真正的聚类算法专家了!
这种全面掌握多种算法特性及应用场景的能力,正是你在数据科学领域持续进阶的核心竞争力。
它让你在面对各类聚类问题时都能游刃有余,快速找到最佳解决方案。
class="post-meta-container">
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback