小波聚类 wavecluster算法的细节问题,请问具体是怎么实现的?

理由
举报 取消

最近论文需要用到wavecluster,但是在网上找了资料,基本都是下面的这些,基本上看不太懂,求大神指教一下,如果能有具体的代码或者伪代码就最好啦,谢谢大神

步骤1) 对特征空间进行量化,把每个维度分成m段,这样,整个空间分成单元,然后把对象分机到相应的单元;

步骤2) 对量化后的特征空间进行离散小波变换;

步骤3) 在变化后的特征空间的子波段中找出相连的部分,就是簇;

步骤4) 为每个簇所包含的单元分配相应的标签;

步骤5) 建立查找表,用于把变换后特征空间中的单元映射到原特征空间中的单元;

步骤6) 把每个单元的标签分配给该单元内的所有对象。

2017年11月24日 4 条回复 904 次浏览

回复 ( 4 )

  1. UncleK
    理由
    举报 取消

    泻药,之前也有人问过我这个问题,我一并回答一下好了。

    以下内容是我的一次课程作业,禁止转载。

    小波聚类的原理其实不难,完全可以用下面这张图概括

    以此为例,我把你问题里的各个步骤翻译一下:

    1、建立2*2的简单网格系统,数一数每个网格里的点的数量,得到数量矩阵 A=[3 1;0 2];

    2、对A应用二维离散小波变换dwt,得到平滑后的矩阵 B=[2.8 1.5;0.4 2.1];

    3、用密度阈值2过滤矩阵B,凡是小于阈值的都变成0,大于阈值的都变成1,得到矩阵C=[1 0;0 1],这里阈值可以取1.6,1.7,1.8……都行,反正这是一个调整的参数,用来过滤噪声的。在C矩阵上找相连的 1 ,把连成一片的宝藏,哦不对,连成一片的1都圈起来作为一个簇。如果你是matlab用户的话,可以看看bwlabeln这个函数的用法,它会算出连成一片的有多少个。可以看到C矩阵里只有两个孤立的1,所以是两个簇;

    4、为C的这两个簇分配了标签1、2,放在对应的位置上得到矩阵D。0就是没有簇,就是噪声的情况;

    5、6、由于D矩阵的元素一一对应网格系统,看看原来的每个数据点都落在哪个网格里,那么就知道原来的每个数据的的标签了

    由此可知小波聚类可以调整的参数有网格的疏密(报告中称为尺度,level)、密度阈值,不那么重要的参数还有dwt的参数,以及判断相连。

    值得说明的是,这是一个二维的例子。如果是高维数据集,那么离散小波变换dwt那个部分你得使用高维的离散小波变换。

    相信你已经差不多懂了,抱歉代码不能给你。

    以上。

  2. 杜晓亮
    理由
    举报 取消

    有matlab代码了么,一直没有找到

  3. 用户头像
    理由
    举报 取消

    谢邀,这个真不会

我来回答

Captcha 点击图片更换验证码