西电数据挖掘大作业-密度聚类DBSCAN.doc

西电数据挖掘大作业-密度聚类DBSCAN.doc

ID:55287150

大小:973.37 KB

页数:7页

时间:2020-05-09

西电数据挖掘大作业-密度聚类DBSCAN.doc_第1页
西电数据挖掘大作业-密度聚类DBSCAN.doc_第2页
西电数据挖掘大作业-密度聚类DBSCAN.doc_第3页
西电数据挖掘大作业-密度聚类DBSCAN.doc_第4页
西电数据挖掘大作业-密度聚类DBSCAN.doc_第5页
资源描述:

《西电数据挖掘大作业-密度聚类DBSCAN.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、题目:数据挖掘实验报告学院:电子工程学院专业:智能科学与技术学生姓名:**学号:02115***数据挖掘实验报告——密度聚类DBSCAN一、问题介绍用DBSCAN的方法对双层正方形数据和三维同心球数据进行聚类。其中样本个数为20000,且为均匀分布。二、算法描述输入: espilong— 半径  MinPts— 给定点在espilong邻域内成为核心对象的最小领域点数    data — 集合输出:目标类簇集合;聚类数方法:1)标记所有对象为unvisited;2)do3)随机选择一个unvisited

2、对象p;4)标记p为visited;5)ifp的espilong邻域至少有MinPts个对象6)创建一个新簇C7)令N为p的espilong邻域中的对象的集合8)forN中的每个点p’9)ifp’是unvisited10)标记p’为visited11)ifp’的espilong邻域至少有MinPts个对象12)把这些对象添加到N中13)ifp’还不是任何簇的成员14)把p’添加到c15)endfor16)else17)标记p为噪声18)until没有标记为unvisited的对象三、实验结果由于考虑到内

3、存问题,所以这里只取2000个数据1、双层正方形数据由多次实验可知epsilong=10MinPts=201、三维同心球数据由多次实验可知epsilong=5MinPts=7一、实验代码lDBSCAN%%%%%%%%%%DBSCAN%%%%%%%输入:%data——包含n个对象的数据集%epsilon——半径参数%MinPts——邻域密度阈值%输出:%y——基于密度的簇的分类%c——类别数function[yc]=DBSCAN(data,epsilong,MinPts)num=size(data,1);

4、N=zeros(1,1);c=1;visited=zeros(num,2);dis=zeros(num,num);fori=1:numforj=1:numdis(i,j)=norm(data(i,:)-data(j,:));endendwhile(min(visited(:,1))==0)%随机选择一个未访问过的对象pwhile(1)p=round(num*rand);if(p==0)p=1;endif(visited(p,1)==0)break;endend%标记p为visitedvisited(p,

5、1)=1;%判断p的epsilong邻域内对象的个数[rowcol]=find(dis(p,:)<=epsilong);n=size(col,2);if(n1)pp=N(1,2);if(visited(pp,1)==0)visi

6、ted(pp,1)=1;[prowpcol]=find(dis(pp,:)<=epsilong);nn=size(pcol,2);if(nn>=MinPts)N=cat(2,N,pcol);endendif((visited(pp,2)==0)

7、

8、(visited(pp,2)==-1))visited(pp,2)=c;endv=size(N,2);N=N(:,2:v);end%簇c生成c=c+1;endendy=visited(:,2);c=c-1;endlcreatdata_squareclear;c

9、lc;%数据生成num=2000;data=zeros(num,2);fori=1:num/2data(i,1)=-50+100*rand;data(i,2)=-50+100*rand;endwhile(i~=num)x=-100+200*rand;y=-100+200*rand;if(x>=-50&&x<=50&&y>=-50&&y<=50)i=i;elsei=i+1;data(i,1)=x;data(i,2)=y;endend%利用DBSCAN进行聚类epsilong=10;MinPts=20;[y

10、c]=DBSCAN(data,epsilong,MinPts);%结果显示disp(sprintf('聚类数为%d',c));linetype={'r*','b*','g*','k*','y*','c*','r<','k<','b<','g<','y<','c<'};fori=1:numif(y(i,1)~=-1)plot(data(i,1),data(i,2),linetype{y(i,1)});elseplot(data(i,1),da

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。