谱聚类是基于拉普拉斯特征映射的k近邻聚类,matlab代码如下:

>> n=500;c=2;k=10;t=randperm(n);a=linspace(0,2*pi,n/2)';
>> x=[a.*cos(a) a.*sin(a);(a+pi).*cos(a) (a+pi).*sin(a)];
>> x=x+rand(n,2);x=x-repmat(mean(x),[n,1]);x2=sum(x.^2,2);
>> d=repmat(x2,1,n)+repmat(x2',n,1)-2*x*x';[p,i]=sort(d);
>> W=sparse(d<=ones(n,1)*p(k+1,:));W=(W+W'~=0);
>> D=diag(sum(W,2));L=D-W;[z,v]=eigs(L,D,c-1,'sm');
>> m=z(t(1:c),:);s0(1:c,1)=inf;z2=sum(z.^2,2);
>> for o=1:1000m2=sum(m.^2,2);[u,y]=min(repmat(m2,1,n)+repmat(z2',c,1)-2*m*z');for t=1:cm(t,:)=mean(z(y==t,:));s(t,1)=mean(d(y==t));endif norm(s-s0)<0.001,break,ends0=s;end
>>  figure(1);clf;hold on;axis([-10 10 -10 10])
>> plot(x(y==1,1),x(y==1,2),'bo')
>> plot(x(y==2,1),x(y==2,2),'rx')

结果如:

聚类依赖超参的选择,如k值,如何确定最佳k值,下面理解通过互信息来评价聚类的算法:

参考matlab代码如:

>> n=500;a=linspace(0,2*pi,n/2)';
>> x=[a.*cos(a) a.*sin(a);(a+pi).*cos(a) (a+pi).*sin(a)];
>> x=x+rand(n,2);x=x-repmat(mean(x),[n,1]);x2=sum(x.^2,2);
>> y=[ones(1,n/2) zeros(1,n/2)];
>> d=repmat(x2,1,n)+repmat(x2',n,1)-2*x*x';
>> hhs=2*[0.5 1 2].^2;ls=10.^[-5 -4 -3];m=5;
>> u=floor(m*[0:n-1]/n)+1;u=u(randperm(n));
>> g=zeros(length(hhs),length(ls),m);
>> for hk=1:length(hhs)hh=hhs(hk);k=exp(-d/hh);for j=unique(y),for i=1:mki=k(u~=i,y==j);kc=k(u==i,y==j);Gi=ki'*ki*sum(u~=i&y==j)/(sum(u~=i)^2);Gc=kc'*kc*sum(u==i&y==j)/(sum(u==i)^2);hi=sum(k(u~=i&y==j,y==j),1)'/sum(u~=i);hc=sum(k(u==i&y==j,y==j),1)'/sum(u==i);for lk=1:length(ls)l=ls(lk);a=(Gi+l*eye(sum(y==j)))\hi;g(hk,lk,i)=g(hk,lk,i)+a'*Gc*a/2-hc'*a;end,end,end,
end
>> g=mean(g,3);[gl,ggl]=min(g,[],2);[ghl,gghl]=min(gl);
>> L=ls(ggl(gghl));HH=hhs(gghl);s=-1/2;
>> for j=unique(y)k=exp(-d(:,y==j)/HH);h=sum(k(y==j,:),2)/n;t=sum(y==j);s=s+h'*((k'*k*t/(n^2)+L*eye(t))\h)/2;
end
>> disp(sprintf('Information=%g',s));
Information=0.498697

理解互信息法评价聚类,要理解KL散度,以及近似密度估计函数的思路。

而谱聚类本身则要理解拉普拉斯特征映射(降维方法)。

【IM】关于聚类评价算法的理解相关推荐

  1. 音频品鉴与歌唱评价——音频内容理解实践

    歌唱评价是K歌系统中核心技术之一.近年来,歌唱评价领域也发生着多元化和深度化的变革.本次LiveVideoStackCon 2022 北京站邀请到腾讯音乐天琴实验室高级研究员--江益靓,为大家介绍全民 ...

  2. 机器学习算法之K-means(K均值聚类)算法

    聚类 聚类,简单来说,就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好.它是一种无监督的学习(Unsupervised Learning)方法,不需 ...

  3. Interview:算法岗位面试—11.15下午上海某航天***公司(国企)技术面之工业机器视觉认知、计算机视觉算法的理解、目标检测相关项目案例

    ML岗位面试:11.15下午上海某航天***公司(国企)技术面之工业机器视觉认知.计算机视觉算法的理解.目标检测相关项目案例 Interview:算法岗位面试-11.15下午上海某航天***公司(国企 ...

  4. 《大数据》第七章 聚类 K-means算法 BFR算法 CURE算法

    1.欧氏空间与非欧空间 在了解聚类之前我认为需要先了解欧氏空间与非欧空间的概念,因为在聚类的算法中会根据欧或者非欧有不同的解决方案. 1.1欧氏空间 引用看过的一篇文章中的一句话总结:欧几里得空间就是 ...

  5. pythondcnda算法聚类_分层聚类ahc算法

    ( 称为系统树图 ) 的重要聚类方法. 层次聚类可以分为凝聚层次聚类算法 ( AHC ) 和划 分层次聚类 2 种, 这 2 种算法都是贪婪算法[2 ] 以用较小的计算...... (auacneEi ...

  6. 算法 · 深入理解 Fibonacci 数列计算及黄金分割

    在自然界中,有一串数字我们时常能看到,它的前几项序列是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233- 如果用数学语言描述,它的递归形式是这样的 ...

  7. 评价算法的优劣标准有什么?

    一.评价算法的优劣标准有什么? 1.1什么是算法? 算法就是一个解决问题的方法,一种计算过程.补充:一个程序就是算法与数据结构的组合(数据结构可以直白的理解为研究数据存储的方式) 1.2时间复杂度 想 ...

  8. 评估图像质量评价算法性能的几个常用的标准

    The 'good-ness' of any algorithm is gauged by measuring the correlation of algorithmic scores with s ...

  9. 机器学习强基计划7-5:图文详解密度聚类DBSCAN算法(附Python实现)

    目录 0 写在前面 1 密度聚类 2 DBSCAN算法 3 Python实现 3.1 算法复现 3.2 可视化实验 0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用.&qu ...

最新文章

  1. 大学毕业生如何应对“没有工作经验”的难题
  2. SQL中的循环语句_类似FOR循环
  3. php报错:找不到php_pdo_oci.dll模块
  4. python自学网课推荐-这些AI课网课最具人气!不仅免费、系统,还附带链接 | 资源...
  5. postman 抓包工具charles的使用
  6. spring boot原理_SpringBoot-02-原理初探之主启动类
  7. redis内部数据结构深入浅出
  8. iOS开发之打电话,发短信,发送邮件
  9. laravel 先排序后分组怎么写_插入排序的故事
  10. 我是如何学习写一个操作系统(五):故事的高潮之进程和线程1
  11. python while一定要提供循环次数吗_Python语法之选择和循环(if、while)
  12. 解决方案:Gateway实现全局跨域
  13. CCNA笔记:Access Lists
  14. 编译原理:c语言词法分析器的实现
  15. 施耐德编程软件Unity Pro XL授权步骤
  16. Office 与 Visio安装冲突
  17. k2450 linux 显卡驱动,Debian系统安装NVIDIA驱动支持双显卡切换
  18. MATLAB算法实战应用案例精讲-【数据分析】时序异常检测(补充篇)(附Java、R语言和python代码实现)
  19. openwrt利用arp获取局域网设备IP
  20. 更愿意思念更早的“金陵”

热门文章

  1. java 与 php lajp_LAJP
  2. android自定义下载框架,Android_DownloadUtil
  3. java删除第一个节点_访问单个节点的删除(Java)
  4. taglib遍历foreach循环list集合
  5. es6-Set与Map
  6. [LeetCode] Binary Tree Postorder题解
  7. 禁止input输入框输入指定内容
  8. UVa 1632 阿里巴巴(区间DP)
  9. Python脚本完美解决Linux环境解压.zip文件乱码问题
  10. setTimeout和setInterval你真的了解吗?