根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。
1 聚类算法
K-Means算法
步骤
随机初始化k个簇类中心(cluster centroids)[n维向量],然后迭代
- 簇分配:遍历样本,判断其距离哪个簇类中心更近,然后分配
- 移动簇类中心:计算每个簇的样本均值,然后更新簇类中心的位置(如果簇内没有样本,则移除该簇;如果确实需要,则随机初始化)
直至簇类中心不再改变
可以用于分类不佳的簇
优化目标
\(c^{(i)}\):样本\(x^{(i)}\)所属的簇类index
\(\mu_k\):簇类中心k
\(\mu_{c^{(i)}}\):样本\(x^{(i)}\)所属的簇类中心
\[ J(c^{(i)},\cdots,c^{(m)},\mu_1,\cdots,\mu_K)=\frac{1}{m}\sum_{i=1}^m||x^{(i)}-\mu_{c^{(i)}}||^2 \]
随机初始化:随机选择K个训练样本
↓
局部最优:多次运行K-means算法(对于K值较小的聚类效果较好)
K值的选择
- “肘部法则”:绘制J-K曲线(实际并不好用)
- 根据后续目的选择