文章目录

  • 一,有监督学习与无监督学习
  • 二,Kmeans算法
  • (一)Kmeans算法原理
  • (二)Kmeans算法步骤
  • (三)Kmeans的优化
  • 三,Kmeans优缺点
  • 四,例题


一,有监督学习与无监督学习

有监督学习:有监督学习我们接触过很多,例如线性回归模型,我们给模型一个x,会得到一个与之对应的Keras 回归分析_聚类,目的是使我们所得到的结果与真实结果y越接近越好 。

无监督学习:有很多数据并没有给定x所对应的真实结果y,这时候,只有x,我们根据x的自身特点来进行分类。Kmeans算法就是无监督学习的一种。

二,Kmeans算法

(一)Kmeans算法原理

假如空间内存在一批数据点,我们一般会认为距离越近的点他们是同一类的概率越大。选取K个点作为质心,对数据点的距离进行计算,一般采取欧式距离计算,距离哪个质心越近,那么这个数据点就归于哪一类。

(二)Kmeans算法步骤

损失函数,Keras 回归分析_机器学习_02

其中Keras 回归分析_k-means_03

可以从公式中看出损失函数L的意义是所有数据点到每个质心的欧式距离和,目的是使得L最小,找出每个x所属的类别

步骤如下:

1,根据经验以及需求设置K个分类,Keras 回归分析_Keras 回归分析_04

2,计算每个点到质心的距离,并讲其分配给距离质心最小的簇中

3,更新簇的质心,即,Keras 回归分析_k-means_03

4,重复2-3步,知道满足以下条件之一,停止分类

(1)聚类中心不在变化

(2)没有样本点分到其他类中

(3)损失函数L足够小

(三)Kmeans的优化

Kmeans++在Kmeans的基础上进行了改进

步骤如下:
1,从N个数据点中随机选取一个点作为初始的聚类中心,即Keras 回归分析_机器学习_06

2,计算每个点到聚类中心的距离

3,选取距离最远的数据点作为新的聚类中心

4,重复2-3步知道找到K个聚类中心为止

但是,Kmeans++的后一个聚类中心要依赖于前一个聚类中心

三,Kmeans优缺点

优点:算法简单,速度快,便于理解,复杂度低,当簇近似高斯分布的时候,效果会很好,而且可以保证有较好的伸缩性

缺点:K值的选取影响分类结果。K越大分类越精细;K越小分类越粗糙。对异常值敏感。对于初始聚类中心点的设置非常敏感。

四,例题

假设数据挖掘的任务是将如下的八个点(用(x,y)代表位置)聚类为三个簇.A1(2,10),A2(2,5),A3(8,4),B1(5,8),B2(7,5),B3(6,4),C1(1,2),C2(4,9)距离函数是欧几里得距离.假设初始我们选择A1,B1和C1分别为每个簇的中心,用k均值算法给出 :
1,第一轮执行后的三个簇中心点为多少?

2,最后的三个簇是什么

解:由题目可知,将上述数据点聚成3类,题目要求使用欧式距离,将上述点整理成如下的表格

x

y

A1

2

10

A2

2

5

A3

8

4

B1

5

8

B2

7

5

B3

6

4

C1

1

2

C2

4

9

(一)第一轮

初始的聚类中心为A1,B1和C1,我们要算出每个点到这三个聚类中心的距离,距离哪个聚类中心最小,就把这个点归于哪一类

拿A2与A1进行距离,算欧氏距离Keras 回归分析_机器学习_07

Keras 回归分析_算法_08

A1

B1

C1

A2

min

A3

min

B2

min

B3

min

C2

min

算出欧式距离进行比较发现,

第一轮
A1 (2,10)
B1(5,8),A3(8,4),B2(7,5),B3(6,4),C2(4,9)
C1(1,2),A2(2,5)

由此第一轮分类结果已出现,根据第一轮的分类结果重新计算聚类中心

第一个聚类中心为(2,10)

第二个聚类中心为(6,6)

计算方法为:(5+8+7+6+4)/5 = 6,(8+4+5+4+9)/5 = 6

第三个聚类中心为(1.5,3.5)

计算方法为:(1+2)/2 = 1.5,(2+5)/2 = 3.5

(二)第二轮

第二轮的聚类中心已知,所以将A1-C2的每个点与三个聚类中心算欧式聚类,然后进行比较选取最小的距离

(2.10)

(6,6)

(1.5,3.5)

A1

min

A2

min

A3

min

B1

min

B2

min

B3

min

C1

min

C2

min

由此可知第二轮的最后结果为如下的三类:
{A1(2,10),B1(5,8),C2(4,9)}
{A3(8,4),B2(7,5),B3(6,4)}
{C1(1,2),A2(2,5)