(一) KNN和Kmeans分析

KNN、Kmeans是常用机器学习算法,但也经常弄混。本文将详细介绍这两种算法含义、实现过程、用途、区别等方面进行详细讲解。

1、KNN

属于监督学习,属于分类学习(需要进行训练)。最简单粗暴就是将预测点与所有点距离计算,然后保存并排序,选出前面K个值看看哪些类别比较多,则预测的点属于哪类。

(1) 流程

对未知类别属性的数据集中的每个点依次执行以下操作:

a、计算已知类别数据集中的点与当前点之间距离(曼哈顿距离计算、欧式距离计算)

b、按照距离递增次序排序

c、选取与当前点距离最小的k个点(k取值依据:通过交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6:4拆分出部分训练数据和验证数据),从选择一个较小的K值开始,不断增加K的值,然后计算验证集合的方差,最终找到一个比较合适的K值)

d、确定前K个点所在类别的出现概率

e、返回前k个点出现频率最高的类别作为当前点的预测分类

2、KMeans

属于聚类学习,类别的个数是人为给定的,如果让机器自己去找类别的个数,通过一次次重复这样的选择质心-计算距离后分类-再次选择新质心的流程,直到我们分组之后所有数据都不会再变化,就得到最终的聚合结果。

(1) 流程

a、随机选取K个质心(K值取决于想要聚成几类)

b、计算样本到质心的距离,距离质心距离近的归为一类,分为k类

c、求出分类后的每类的新质心

d、再次计算样本到新质心的距离,距离质心距离近的归为一类

e、判断新旧聚类是否相同,如果相同就代表已经聚类成功,如果没有就循环2~4步骤直到相同

3、KMeans++

KMeans的两个缺陷: KMeans聚类中心的个数K需要事先给定,但在实际中这个K值的选定是非常难以估计的;KMeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。(KMeans++解决KMeans的两个缺陷。)

(1)流程

k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。

a、给定初始点的集合D

b、随机从点集D中选择一个点作为初始的中心点

c、计算每一个点到最近中心点的距离Si

d、求和Si得到Sum

e、取随机值Random(0<Random<Sum)

f、循环点集D,做Random-=Si运算直到Random<0,那么点i就是下一个中心点

g、循环c~f,直到取出所有的K个中心点

h、进行K-means算法

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值