【机器学习】K-means算法原理及MATLAB程序实现其应用

1. K-means聚类算法原理

K-均值聚类算法是一种无监督的机器学习算法,其主要思想是将数据集分成 K 个不同的簇,其中每个簇都代表着数据集中某种特定的模式或特征。 

工作原理:

  • 从数据集T:

T=\left \{ (x_{i},y_{i}) \right \}(i = 1,2,3,....n)

中的n个数据点中选取K个记为聚类中心,每个聚类中心对应一个簇;

  • 计算其到每个聚类中心的距离,将其归类到距离最近的聚类中心所在的簇中;
  • 重新计算每个簇的聚类中心;
  • 重复第二步和第三步,直到聚类中心不再变化或达到预设的迭代次数。

优点:

  • 算法简单、易于实现;
  • 对于大数据集的聚类效果较好;
  • 可以比较方便地扩展到高维数据集。

缺点:

  • 需要提前确定簇的数量 K,且对于不同的数据集,正确的 K 值不同,此时需要根据经验或者尝试多种 K 值;
  • 对于初始的聚类中心的选择敏感,不同的初始值可能会导致不同的聚类结果;
  • 对于非凸的形状可能聚类效果较差。

2.距离函数的选择

常见的距离函数有欧氏距离(Euclidean distance)、曼哈顿距离(Manhattan distance)以及马氏距离(Mahalanobis distance)。针对不同研究对象需要选择合适的距离函数。

  • 设X是n维空间向量R^{n}中的特征空间,x_{i}, x_{j}\in Xx_{i}=(x_{i}^{(1)},x_{i}^{(2)},...,x_{i}^{(n)}),x_{j}=(x_{j}^{(1)},x_{j}^{(2)},...,x_{j}^{(n)})。则:
  • 欧式距离:
  • L_{2}=(\sum_{l=1}^{n}|x_{i}^{(l)}-x_{j}^{(l)}|^2)^{1/2}
  • 曼哈顿距离:
  • L_{1}=\sum_{l=1}^{n}|x_{i}^{(l)}-x_{j}^{(l)}|
  • 马氏距离:
  • 假设向量x的平均值为\mu,则其协方差可表示为:\sum {(x-\mu)'},马氏距离就定义为:
  • L_{M}=\sqrt{(x-\mu)\sum^{-1}{(x-\mu)'} }
  • (x−μ)本质上是向量与平均值的距离。然后,将其除以协方差矩阵(或乘以协方差矩阵的逆数)。这实际上是多元变量的常规标准化(z =(x – μ)/ sigma)。也就是说,z =(x向量)–(平均向量)/(协方差矩阵)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Da π

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值