K均值算法.docx

上传人:小飞机 文档编号:3061390 上传时间:2023-03-10 格式:DOCX 页数:7 大小:37.97KB
返回 下载 相关 举报
K均值算法.docx_第1页
第1页 / 共7页
K均值算法.docx_第2页
第2页 / 共7页
K均值算法.docx_第3页
第3页 / 共7页
K均值算法.docx_第4页
第4页 / 共7页
K均值算法.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《K均值算法.docx》由会员分享,可在线阅读,更多相关《K均值算法.docx(7页珍藏版)》请在三一办公上搜索。

1、K均值算法K均值算法 K均值算法假定所有数据对象可分为K个簇,每个簇的中心用均值表示。聚类的准则是误差平方准则。 K平方和准则: 若N是第C个簇CC中的对象数目,xm2是这些对象的均值,即xmx=1NxooCx误差平方和准则J就是所有簇中各个对象与均值间的误差平方和之和,J=i=1oci12ko-mik2 J=o-mxx=1ok。J度量了用K个聚类中心cxm,m,.,m代表K个簇C,C,.,C12k时所产生的总的误差平方和。对于不同的聚类,J的值极小的聚类是误差平方和准则下的最优结果。 K均值算法的核心思想是:首先选定K个初始聚类中心,根据最小距离原则将每个数据对象分配到某一簇中,然后不断迭代

2、计算各个簇的聚类中心并依新的聚类中心调整聚类情况,直至收敛 算法描述: 算法:K均值聚类算法 输入:数据对象集合D,簇数目K 输出:K个簇的集合 1. 从D中随机选取K个不同的数据对象作为K个簇C,C,.,C12k的中心m,m,.,m 12k2. repeat a) for D中每个数据对象O i. ii. 寻找i,i=arg mino-jmj(j=1,2,.k) 将O分配给簇C ioc=mii ocib) For 每个簇C (i=1,2,.,k) 计算ik2c) 计算平方误差J=o-mii=1oci3. Unite J不再发生变化 下面是K均值的matlab代码实现,建立k_means.ma

3、t function features, targets, label = k_means(train_features, train_targets, Nmu, region, plot_on) %Reduce the number of data points using the k-means algorithm %Inputs: % train_features - Input features % train_targets - Input targets % Nmu - Number of output data points % region - Decision region

4、vector: -x x -y y number_of_points % plot_on - Plot stages of the algorithm % %Outputs % features - New features % targets - New targets % label - The labels given for each of the original features if (nargin 1), for i = 1:Nmu, if (length(train_targets(:,find(label = i) 0), targets(i) = (sum(train_targets(:,find(label = i)/length(train_targets(:,find(label = i) .5); end end else %There is only one center targets = (sum(train_targets)/length(train_targets) .5); end features = mu; K均值算法的计算复杂度是P,其中n对象的总和,k是簇的个数,t是迭代次数。算法的特点是能对大型数据及进行高效划分,但不适合于发现非球形,密度或尺寸差别和大的聚类簇。且,k值需要用户事先确定。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号