聚类注意点

聚类注意点

样本异常数据

K均值(K-Means)是聚类中最常用的方法之一,它基于点与点距离的相似度来计算最佳类别归属。但K均值在应用之前一定要注意两种数据异常:

  • 数据的异常值:数据中的异常值能明显改变不同点之间的距离相似度,并且这种影响是非常显著的。因此基于距离相似度的判别模式下,异常值的处理必不可少。
  • 数据的异常量纲 :不同的维度和变量之间,如果存在数值规模或量纲的差异,那么在做距离之前需要先将变量归一化标准化。例如,跳出率的数值分布区间是[0,1],订单金额可能是[0,10000000],而订单数量则是[0,1000]。如果没有归一化或标准化操作,那么相似度将主要受到订单金额的影响。

样本数据量过大

数据量过大的时候不适合使用KMeans算法
K-Means在算法稳定性、效率和准确率(相对于真实标签的判别)上表现非常好,并且在应对大量数据时依然如此。它的算法时间复杂度上界为n kt,其中n是样本量、k是划分的聚类数、t是迭代次数。
当聚类数和迭代次数不变时,K均值的算法消耗时间只跟样本量有关,因此会呈线性增长趋势。
当真正面对海量数据时,使用K均值算法将面临严重的结果延迟,尤其是当K均值被用做实时性或准实时性的数据预处理、分析和建模时,这种瓶颈效应尤为明显。
针对K均值的这一问题,很多延伸算法出现了, MiniBatchKMeans就是其中一个典型代表。
MiniBatchKMeans使用了一个名为Mini Batch(分批处理)的方法计算数据点之间的距离。
MiniBatch的好处是计算过程中不必使用所有的数据样本,而是从不同类别的样本中 抽取一部分样本(而非全部样本)作为代表参与聚类算法过程。
由于计算样本量少,所以会相应减少运行时间;但另一方面,由于是抽样方法,抽样样本很难完全代表整体样本的全部特征,因此会带来准确度的下降
经过对30000样本点分别使用KMeans 和 MiniBatchKMeans 进行聚类,对比之后运行时间 MiniBatchKMeans 是 K-Means的一半(0.17 vs 0.36),但聚类结果差异性很小。
结论: MiniBatchKMeans在基本保持了K-Means原有较高类别识别率的前提下,其计算效率的提升非常明显。因此, MiniBatchKMeans是一种能有效应对海量数据,尽量保持聚类准确性并且大幅度降低计算耗时的聚类算法。

相关推荐
MediaTea4 分钟前
Python 库手册:doctest 文档测试模块
开发语言·python·log4j
2025年一定要上岸6 分钟前
【pytest高阶】源码的走读方法及插件hook
运维·前端·python·pytest
天道哥哥9 分钟前
InsightFace(RetinaFace + ArcFace)人脸识别项目(预训练模型,鲁棒性很好)
人工智能·目标检测
angushine18 分钟前
Python将Word转换为Excel
python·word·excel
幻风_huanfeng24 分钟前
学习人工智能所需知识体系及路径详解
人工智能·学习
抠头专注python环境配置34 分钟前
Anaconda创建环境报错:CondaHTTPEFTOT: HTTP 403 FORBIDDEN for url
python·conda
云道轩41 分钟前
使用Docker在Rocky Linux 9.5上在线部署LangFlow
linux·人工智能·docker·容器·langflow
POLOAPI1 小时前
从模型到生产:AI 大模型落地工程与效率优化实践
人工智能·gpt·gemini
谷歌上搜百度1 小时前
LLM并非“万能钥匙”——深度解析大语言模型的本质与边界
人工智能·llm
王者鳜錸1 小时前
PYTHON从入门到实践-15数据可视化
开发语言·python·信息可视化