CAM_类中心_加权实验

"经过思路的整理,对上次组会的思想进行实验"

Posted by neo on May 22, 2019

CAM_类中心_加权实验

一. 数据距离度量

先利用了欧式距离进行实验。

1.Single-linkage:要比较的距离为元素对之间的最小距离

1
2
3
4
5
6
7
8
def single(a,b):
    min = 1000000;
    for i in a:
        for j in b:
            s = np.sqrt(np.sum(np.square(i-j)))
            if(min>s):
                min=s
    return min  

2.Group average:要比较的距离为类之间的平均距离。

3.Complete-linkage:要比较的距离为元素对之间的最大距离。

比较不同类的percent

再其他类跟此类的比较中,看一下其他类中比平均值小的数据。

二. 类中心计算

这里直接利用k-means算法获得一个聚类时的数据中心,距离所有的平均欧式距离最小。

计算出来10个类的类中心。

三. GAP与类中心GAP距离加权

1
2
3
4
if(distance > avg_of_label):
    alphe = (distance - avg_of_label)/avg_of_label
else:
    alphe =  (avg_of_label - distance)/avg_of_label + 1

控制其低于平均值的alphe大于1.

大于平均值的alphe小于1

把alphe的系数加到重点的像素点上。

1
2
3
4
for i in range(m):
    for j in range(n):
           if(vis[i][j]>0.7):
                weight_vis[i][j] = vis[i][j] * alphe

结论

欧式距离这种方法,的确对我们想要的信息进行了加强。

但是感觉效果还有待提升。

future work

  1. 目前的数据度量函数还可以变换
  2. 类中心的计算还是有待提升
  3. 加权回去的计算方法也需要提升