knn 算法 kmax 聚制异同
Kmeans 和 KNN(K 近邻)算法是聚类 cluster 中经典的算
法,两者既有类似性也存在不同点。
两个算法的缺点:无法自行自动确定样本分类数量,需要
先验知识!
K-means 是无监督研究,而 KNN(K 近邻)是监督研究,
需要样本标注!
Kmeans 算法的思想:随机给出数据的 k 个类的初始点,
然后遍历所有的数据点,样本到各个初始点的距离(欧拉或者
曼哈顿距离),距离最小的则将该样本归为当前初始点相同类,
直到遍历完所有样本点。此时对各个类进行求平均值,更新本
类的中心点。接着迭代,直到中心点重合或者变化不是很大的
时候算法终止。
算法过程:输入:k, data[n];(1) 选择 k 个初始中心点,
例如 c[0]=data[0],…c[k-1]=data[k-1];(2) 对于
data[0]….data[n], 分别与 c[0]…c[k-1]比较,假定与 c[i]差值最
少,就标记为 i;(3) 对于所有标记为 i 点,重新计算
c[i]={ 所有标记为 i 的 data[j]之和}/标记为 i 的个数;(4) 重
复(2)(3),直到所有 c[i]值的变化小于给定阈值。
算法的效率跟初始点选择有关,初始点选择的好可以减少
迭代次数!以及距离公式的选择。