kmeans和gmm算法思路和demos.ppt
文本预览下载声明
聚类Kmeans 和 GMM 31520111153200 Kmeans 输入:聚类个数k,以及包含 n个数据对象的矩阵。 输出:满足方差最小标准的k个聚类。 算法过程 (1) 从 n个数据对象任意选择 k 个对象作为初始聚类中心; (2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分; (3) 重新计算每个(有变化)聚类的均值(中心对象) (4) 循环(3)到(4)直到每个聚类不再发生变化为止 Kmeans 初始点选择 利用随机数 srand(time(NULL)); temp=(long)rand()%Dimension+1; while(ik)//设置初始聚类中心,用随机数 { temp=(temp+778)%Dimension+1; centriodX[i]=PointMatrix-at(temp).x; centriodY[i]=PointMatrix-at(temp).y; centriodX1[i]=0; centriodY1[i]=0; ++i; } Kmeans 欧式距离的计算 distance= double distanceTemp=sqrt((pow((PointMatrix-at(kDimension).x-centriodX[j]),2.0)+ pow((PointMatrix-at(kDimension).y-centriodY[j]),2.0))); Kmeans 中心点选择 x=(x1+x2+...+xn)/n y=(y1+y2+...+yn)/n 终止条件 对原中心点和新中心点求: terminal=|x1-x2|+|y1-y2| GMM EM 算法 概率函数 fourty.data long1.data
显示全部