Kmeans及其改进算法的Matlab解析与实现
前言
虽然之前断断续续看过部分模式识别与机器学习的知识,但是并不系统。加上读研过程中只专注于神经网络与深度学习,对于机器学习的宏观把握与其他算法细节比较模糊。某日看了某乎上诸路大神的回答,对自己的学习状态反思了一下,觉得只会深度学习的硕士毕业生(而且我觉得我的工作比起国外大学的深度学习研究简直就是搭积木。。。)比较难胜任算法工程师的,于是打算潜心钻研各路机器学习算法,通过编程实现以体会算法的内涵。几乎不做笔记的我也开始写博客,希望自己坚持下来,希望大家在机器学习的路上有所收获。
1 kmeans
1.1 原理
由于original kmeans 算法比较容易理解,这一点博客上各路大神讲得比较清楚,大概算法思路如下:
- 从\nu个待分类数据(样本)选取K个数据作为质心,即所谓的means。
- 对剩余样本文档测量其到每个质心的距离,并通过最短距离把它归到某一质心的类中。
- 重新计算各个类中的质心。
- 迭代2、3步直到新的质心与原质心相等或小于指定的阈值。
v=∑i=1k