【数据挖掘】KNN K-means

小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。

一、KNN
KNN(K临近算法),是有监督的分类算法,用于把未知分类的样本点,通过计算附近K个,最近的,已分类的样本点,通过这K个样本点的投票决定,将未知样本点分类到哪一类的样本群中。

步骤:
1.选择合适的距离(欧氏距离,曼哈顿距离)
2.计算未分类样本点到其他已分类样本点的距离(当样本量较小,可以计算出距离,当样本点过大,可以使用K-d树来选择需要计算的样本点)
3.针对计算出来的距离,将样本点升序排列
4.选择最近的K个点
在这里插入图片描述
当K过分小时,比如K=1,会非常受最近几个点的影响,受到噪声影响较大,一发生过拟合;
当K过分大时,会使现有训练集的误差增大,输入不相似的训练集,会导致预测错误。

5.通过K个最近已知样本,进行投票分类,来决定位置样本的所属类。

优点:
1.简单易实现
2.对噪声不敏感,适合分类问题

缺点:
1.当数据量较大,计算距离会有很大的复杂度(改进:用K-d树结构,代替一般的距离,进行选择)
2.当样本分布不均匀时,会出现预测偏差(改进:在每个样本前加上权重,距离未分类样本越远的点,权重越小,一般权值选择距离的倒数)

二、K-Means
K-Means是一个无监督,聚类算法。对一群簇,把有相似特征的样本聚在一起。

步骤:
1.确定分类的簇的个数(K)(K值选取的方法:k-means最优K值的选取
2.选取K个初始质心(尽量不要选择很偏远的点作为初始质心,容易陷入局部最优)
3.计算每个样本点到K个质心的距离
4.将样本点划分到距离最近的质心的簇当中
5.更新每个簇的质心
6.重复3-5,直到样本点的划分不再改变为止

优点:
1.原理简单,容易实现
2.对高斯分布的数据的聚类效果很好

缺点:
1.K值选取不好把握
2.依赖于初始质心的选取,若初始质心选取不好,容易陷入局部最优
3.对圆环类数据聚类效果比较差
(圆环数据:在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值