资源描述:
《人工智能实验报告 (数据聚类分析)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《—人工智能方向实习—》实习报告专业:计算机科学与技术班级:12419013学号:姓名:江苏科技大学计算机学院2016年3月实验一数据聚类分析一、实验目的编程实现数据聚类的算法。二、实验内容k-means聚类算法。三、实验原理方法和手段k-means算法接受参数k;然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高.四、实验条件Matlab2014b五、实验步骤(1)初始化k个聚类中心。(2)计算数据集各数据到中心的距离,选取到中心距离最短的为该数据所属类别。(3)计算(2)分类后,k个类别的中心(即求聚类平均距离)(4)继续执行(2)(3)直到k个
2、聚类中心不再变化(或者数据集所属类别不再变化)六、实验代码%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%main.m%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','
3、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','FontSiz
4、e',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'
5、,'FontSize',16,'Color','red');function[idx,ctrs]=my_kmeans(m,k)[rowcol]=size(m);%initkcentroidsp=randperm(size(m,1));fori=1:kctrs(i,:)=m(p(i),:);endidx=zeros(row,1);%idexispointerofgroupwhile1d=dist2matrix(m,ctrs);[z,g]=min(d,[],2);if(g==idx)break;elseidx=g;end%updatectroidsfori=1:kv=find(g==i);ifvc
6、trs(i,:)=mean(m(v,:),1);endendendendfunction[idx,ctrs]=my_kmeans(m,k)[rowcol]=size(m);%initkcentroidsp=randperm(size(m,1));fori=1:kctrs(i,:)=m(p(i),:);endidx=zeros(row,1);%idexispointerofgroupwhile1d=dist2matrix(m,ctrs);[z,g]=min(d,[],2);if(g==idx)break;elseidx=g;end%updatectroidsfori=1:kv=find(g==i
7、);ifvctrs(i,:)=mean(m(v,:),1);endendendend七、实验结果图1-1未聚类数据图1-2聚类后八、实验分析算法的时间复杂度上界为O(n*k*t),其中t是迭代次数。k-means算法是一种基于样本间相似性度量的间接聚类方法,属于非监督学习方法。此算法以k为参数,把n个对象分为k个簇,以使簇内具有较高的相似度,而且簇间的相似度较低。相似度的计算根据一个簇中对象的平均