k近邻法(KNN)和KMeans算法

k近邻算法(KNN):

三要素:k值的选择,距离的度量和分类决策规则

 

KMeans算法,是一种无监督学习聚类方法:

通过上述过程可以看出,和EM算法非常类似。一个简单例子, k=2:

畸变函数(distortion function):

 时间复杂度:O(tKmn),其中,t为迭代次数,K为簇的数目,m为样本数,n为维数

空间复杂度:O((m+K)n),其中,K为簇的数目,m为样本数,n为维数

转载于:https://www.cnblogs.com/huangshiyu13/p/6125824.html

### KNN K-Means 的区别 #### 定义工作原理 K近邻(KNN, K-Nearest Neighbors)是一种监督学习方法,用于分类回归分析。给定测试样本,基于某种距离度量找出训练集中其最接近的k个训练实例,然后通过多数表决等方式决定其类别标签[^1]。 相比之下,K均值(K-Means)属于无监督学习范畴,旨在发现数据集内部结构而不依赖于预先定义好的类别信息。该算法试图将n个观测值划分为k个簇,在每个簇内成员间相似度较高而不同簇之间差异较大。 #### 时间复杂度 值得注意的是,尽管两者名称都含有字母“K”,但是它们的时间消耗特性却大相径庭。特别是对于大规模数据集而言,KNN计算成本可能非常高昂,因为每次预测都需要遍历整个训练集合来寻找最近邻居。然而,一旦完成初始化过程之后,K-Means执行一次迭代所需时间通常较短,不过整体收敛速度取决于初始质心位置的选择以及所处理的数据分布情况。 #### 数据形状适应能力 另一个显著差别在于这两种技术如何应对各种形态各异的数据群组。由于采用欧氏距离作为衡量标准之一,传统意义上的K-Means更适合圆形或椭圆状集群;而对于那些具有更复杂几何特性的模式,则可能会遇到困难。相反地,只要能够合理设定参数并选取适当的距离函数,KNN可以较好地适用于多种类型的边界条件之下。 #### 应用场景对比 ##### KNN的应用场合 - **推荐系统**:利用用户行为记录构建个性化建议引擎。 - **图像识别**:通过对像素特征向量空间中的临近点进行判断实现目标检测等功能。 - **医疗诊断辅助工具**:依据病患症状描述匹配已知病例库从而提供初步诊疗意见。 ##### K-Means的应用场合 - **市场细分研究**:帮助企业更好地理解消费者群体特征以便制定精准营销策略。 - **文档聚类**:自动整理大量文本资料使之按主题归档便于检索查阅。 - **异常交易监测**:金融机构用来甄别潜在的风险活动比如信用卡盗刷等事件的发生可能性评估。 ```python from sklearn.cluster import KMeans import numpy as np X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]) kmeans = KMeans(n_clusters=2).fit(X) print(kmeans.labels_) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值