Code Monkey home page Code Monkey logo

arxiv-pcm-and-apcm-revisited-an-uncertainty-perspective's People

Contributors

marquistj13 avatar

Watchers

 avatar  avatar

arxiv-pcm-and-apcm-revisited-an-uncertainty-perspective's Issues

突出"可视化允许的带宽不确定度 和 噪声程度的关系"时的主要point

  1. 主要涉及的文件
    plot_sigmaV_vs_EstimationError.py
  2. 改进的方向
  3. 找出原因:为何我设定的noise level很大如0.3,0.5时,为何相比0.1时的Custer center估计误差为何相差不大?难道是因为我这个数据(apcm论文中的fig1)太多了,太稠密了?
  4. 若以上成立,则需要寻找或者重新构造新的比较稀疏一点的数据了,希望我这个猜想是对的
    update: 原因其实很简单,因为初始化的比较好
  5. 该文件初始commit的时候的图像中有好几个误差比较大的点,是因为这俩cluster的估计中心和真实值没有对齐?感觉可以通过增加 带宽不确定度(即sigma_v)的步长来排除掉这一个问题。
  6. 我希望加入logging吧。
    update: 不需要log啦
    issue

画cost function

仿照 J.M. Keller 96年的correspondence的图二画出cost function图。其实apcm也有类似的图,只是人家只画出一个而已(我理解人家的无奈之处,毕竟现实中只有两个cluster,如果给定三个cluster让人家聚类,很明显最后是要干掉一个的,估计不好画,或者说里边有什么不可告人的秘密?)
我决定按照这两篇paper的类似画法吧,只是我探究的是bandwidth 不确定性参数即 sigma_v 的作用,因此不同的sigma_v对应不同的图吧。(还可以解释一句,由于有俩cluster,你非得聚成3个,因此fcm初始化的时候的bandwidth是偏小的)
update: apcm中画的是,用fcm初始化以后,取出最小的bandwidth,然后再去画图的。

关于迭代终止条件取值不当&带宽更新无隶属度限制的问题

  1. pcm_fs2即upcm,迭代终止条件现在是error=0.005,有点大了吧?得换成npcm中的error=1e-5吧?
  2. 我在npcm中发现,如果error设的过大,那么原本要merge的两个cluster,有可能不会merge了,如npcm项目的fig6_closer_npcm.py当alpha设的小的时候。
  3. 第三点和前俩都有联系,就是啊,带宽更新也得有隶属度限制,要不然你每次带宽一增大,意味着一个cluster俘获的点比较多,然后带宽又得增大,这就是正反馈嘛,故可能不会停止的。而upcm中无隶属度限制也能很好地进行终止,这个有好几个原因,其一:可能这个终止条件的判定由error=0.005承担了;其二:由于小cluster和大cluster的 $\sigma_v$一样,因此即使小cluster旁边的大cluster的带宽增加一小部分,也无法从小cluster夺走新的点,因此用来计算带宽的集合$A_j$仍然不变,各个cluster的中心不动了,因此也就迭代终止了。
    当然,我更倾向于第二个解释。

在paper中应添加关于自动调整带宽的解释

基于上一个issue的原因,这个带宽会自动增大,直到增大至和旁边的cluster相比,再也抢不到任何点了就行了(注意此时聚类中心也基本不动的话,那么聚类也就停止了,因为我们现在讨论的是,各个physical cluster内部的cluster已经merge,只剩下各个代表physical cluster的clusters之间的对决了,此时,如果只根据前后两次迭代时每个cluster的点不变来决定是否终止聚类显然是不行的,因为在两个cluster非常靠近的情况下,如npcm项目的fig6_closer_npcm.py,两次迭代时各个cluster的点虽然可能不变,但由于两个cluster离的太近了,导致两个cluster中间的点也位于高密度区域,只是密度相对没那么大,但这也足够使得两个cluster的聚类中心逐渐向cluster中间靠拢,同时保持各个cluster的点数不变,但总有一个时刻这些点会重新分家的,即两个cluster merge的时刻)。
因此和apcm相比的一个重大优点就是,带宽更接近真实cluster的带宽。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.