分享
小波聚类 wavecluster算法的细节问题,请问具体是怎么实现的?
最近论文需要用到wavecluster,但是在网上找了资料,基本都是下面的这些,基本上看不太懂,求大神指教一下,如果能有具体的代码或者伪代码就最好啦,谢谢大神
步骤1) 对特征空间进行量化,把每个维度分成m段,这样,整个空间分成单元,然后把对象分机到相应的单元;
步骤2) 对量化后的特征空间进行离散小波变换;
步骤3) 在变化后的特征空间的子波段中找出相连的部分,就是簇;
步骤4) 为每个簇所包含的单元分配相应的标签;
步骤5) 建立查找表,用于把变换后特征空间中的单元映射到原特征空间中的单元;
步骤6) 把每个单元的标签分配给该单元内的所有对象。
回复 ( 4 )
泻药,之前也有人问过我这个问题,我一并回答一下好了。
以下内容是我的一次课程作业,禁止转载。
小波聚类的原理其实不难,完全可以用下面这张图概括
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那个部分你得使用高维的离散小波变换。
相信你已经差不多懂了,抱歉代码不能给你。
以上。
有matlab代码了么,一直没有找到
很棒
谢邀,这个真不会