0
点赞
收藏
分享

微信扫一扫

机器学习(K-Means算法)

yundejia 2022-03-18 阅读 72

机器学习(K-Means算法)


前言

监督学习是有一系列标签数据,寻找假设函数去拟合这些标签。无监督学习是寻找到一些隐含在系列无标签数据中的结构。K-Means聚类算法是常用的无监督学习方法之一。


一、K-Means算法

输入为:
①聚类个数:K
②训练集: { x ( 1 ) , x ( 2 ) , . . . , x ( m ) } \begin{Bmatrix}{x^{(1)},x^{(2)},...,x^{(m)}}\end{Bmatrix} {x(1),x(2),...,x(m)}

K-Means算法流程如下:
1、随机初始化K个聚类中心
2、分别计算当前样本i到K个聚类中心的距离,将该样本分类至距离最小值所对应的簇
3、重新计算K个簇的中心
4、当所有样本所属的簇不再发生改变或已到达最大迭代次数,停止迭代,否则重复步骤234

当样本数量为M,样本特征维度为D,聚类个数为K,迭代次数为I,K-Means算法的时间复杂度为O(KMDI)。

二、优化目标

J ( c ( 1 ) , c ( 2 ) , . . . , c ( m ) , μ 1 , μ 2 , . . . , μ k ) = 1 m ∑ i = 1 m ∣ ∣ x ( i ) − μ c ( i ) ∣ ∣ 2 m i n J ( c ( 1 ) , c ( 2 ) , . . . , c ( m ) , μ 1 , μ 2 , . . . , μ K ) J{(c^{(1)},c^{(2)},...,c^{(m)},\mu_1,\mu_2,...,\mu_k)} = \frac{1}{m}\sum_{i=1}^m||x^{(i)}-\mu_{c^{(i)}}||^{2} \\min\quad J{(c^{(1)},c^{(2)},...,c^{(m)},\mu_1,\mu_2,...,\mu_K)} J(c(1),c(2),...,c(m),μ1,μ2,...,μk)=m1i=1mx(i)μc(i)2minJ(c(1),c(2),...,c(m),μ1,μ2,...,μK)
c ( i ) 表 示 样 本 x ( i ) 所 属 的 簇 的 索 引 或 序 列 μ k 表 示 第 k 个 聚 类 中 心 的 位 置 ∣ ∣ x ( i ) − μ c ( i ) ∣ ∣ 2 表 示 样 本 x ( i ) 到 该 样 本 所 属 的 聚 类 中 心 距 离 的 平 方 c^{(i)}表示样本x^{(i)}所属的簇的索引或序列 \\\mu_{k}表示第k个聚类中心的位置 \\||x^{(i)}-\mu_{c^{(i)}}||^2表示样本x^{(i)}到该样本所属的聚类中心距离的平方 c(i)x(i)μkkx(i)μc(i)2x(i)

三、随机初始化

随机挑选K个聚类样本,使其为K个聚类中心。
为避免局部最优解,尝试多次随机初始化,多次进行K-Means聚类。

举报

相关推荐

0 条评论