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
- 目前的数据度量函数还可以变换
- 类中心的计算还是有待提升
- 加权回去的计算方法也需要提升