人工智能,a*算法实验报告《—人工智能方向实习—》实习报告专业:计算机科学与技术班级: 学号: 姓名: 江苏科技大学计算机学院 XX年3月实验一数据聚类分析一、实验目的编程实现数据聚类的算法。二、实验内容 k-means聚类算法。三、实验原理方法和手段 k-means算法接受参数k;然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高. 四、实验条件 MatlabXXb 五、实验步骤(1)初始化k个聚类中心。(2)计算数据集各数据到中心的距离,选取到中心距离最短的为该数据所属类别。(3)计算(2)分类后,k个类别的中心(4)继续执行(2)(3)直到k个聚类中心不再变化(或者数据集所属类别不再变化) 六、实验代码%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %k-meansalgorithm %***@authormatcloud %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; closeall; loadfisheriris; X=[meas(:,3)meas(:,4)]; figure; plot(X(:,1),X(:,2),'ko','MarkerSize',4); title('fisheririsdataset','FontSize',18,'Color','red'); [idx,ctrs]=kmeans(X,3); figure; subplot(1,2,1); plot(X(idx==1,1),X(idx==1,2),'ro','MarkerSize',4);holdon; plot(X(idx==2,1),X(idx==2,2),'go','MarkerSize',4);holdon; plot(X(idx==3,1),X(idx==3,2),'bo','MarkerSize',4);holdon; plot(ctrs(:,1),ctrs(:,2),'kx','MarkerSize',12); title('officialkmeans','FontSize',16,'Color','red'); [idx,ctrs]=my_kmeans(X,3); subplot(1,2,2); plot(X(idx==1,1),X(idx==1,2),'ro','MarkerSize',4);holdon; plot(X(idx==2,1),X(idx==2,2),'go','MarkerSize',4);holdon; plot(X(idx==3,1),X(idx==3,2),'bo','MarkerSize',4);holdon; plot(ctrs(:,1),ctrs(:,2),'kx','MarkerSize',12); title('customkmeans','FontSize',16,'Color','red'); function[idx,ctrs]=my_kmeans(m,k) [rowcol]=size(m); %initkcentroids p=randperm(size(m,1)); fori=1:k ctrs(i,:)=m(p(i),:); end idx=zeros(row,1);%idexispointerofgroupwhile1 d=dist2matrix(m,ctrs); [z,g]=min(d,[],2); if(g==idx) break; else idx=g; end %updatectroids fori=1:k v=find(g==i); ifv ctrs(i,:)=mean(m(v,:),1);end end end end function[idx,ctrs]=my_kmeans(m,k) [rowcol]=size(m); %initkcentroids p=randperm(size(m,1)); fori=1:k ctrs(i,:)=m(p(i),:); end idx=zeros(row,1);%idexispointerofgroupwhile1 d=dist2matrix(m,ctrs); [z,g]=min(d,[],2); if(g==idx) break; else idx=g; end %updatectroids fori=1:k v=find(g==i); ifv ctrs(i,:)=mean(m(v,:),1);end end end end 七、实验结果图1-1未聚类数据图1-2聚类后八、实验分析算法的时间复杂度上界为O(n*k*t),其中t是迭代次数。k-means 算法是一种基于昆明理工大学信息工程与自动化学院学生
人工智能,a-算法实验报告 来自淘豆网m.daumloan.com转载请标明出处.