首页 > 代码库 > K-means、KNN学习笔记

K-means、KNN学习笔记

1.K-means:聚类算法,无监督
输入: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]值的变化小于给定阈值。
 
优点:简单,速度快;
缺点:聚类结果与初始中心选取有关,必须提供聚类数目(k值),通常做法是,用不同K值多次聚类,取最优结果。
 
2.Knn:分类算法,有监督
计算步骤如下:
    1)给定测试对象,计算它与训练集中的每个对象的距离
    2)圈定距离最近的k个训练对象,作为测试对象的近邻
    3)根据这k个近邻归属的主要类别,来对测试对象分类
 
优点:简单,无需估计参数,无需训练
缺点:计算量大,内存开销大

K-means、KNN学习笔记