吴恩达机器学习笔记(三)
吴恩达机器学习笔记(三)
K-means聚类
聚类算法用于一组没有标签的数据,将其分成不同的组。
K-means聚类算法一般做的是这两件事:
- 将点分配到不同的聚簇上(根据与聚簇中心的距离)
- 移动聚簇中心
直到聚簇中心不再变化为止。
具体流程
对于\(K\)个聚簇,\(m\)个数据点,流程如下
首先,对于每个数据点计算其与各个聚簇中心的距离,将其分配给最近的聚簇中心。
然后,对于每个聚簇中心,计算损失函数,将其移动到损失函数的值最小的地方。
损失函数定义
\(c^{(i)}\):表示点\(x^{(i)}\)被分配给了第几个聚簇中心。
\(\mu_k\):表示第\(k\)个聚簇中心
\[J(c^{(1)},...,c^{(m)},\mu_1,...,\mu_k) = \frac{1}{m}\sum^m_{i=1} || x^{(i)}-\mu_{c^{(i)}} ||^2
\]
本质上是计算点与点之间的距离。
初始化
设定\(K(K<m)\)个点,将k随机初始化,然后多次运行K-means聚类算法,比较代价函数,选择最小者。