Центроидная связь с монотонной трансформацией меры различия - PullRequest
0 голосов
/ 06 марта 2020

Я изучаю иерархическую кластеризацию. Я сосредотачиваюсь на связи Centroid. Я хочу знать, почему использование евклидова расстояния и квадрата евклидова расстояния даст разные результаты. Вы можете прочитать https://www.stat.cmu.edu/~ryantibs/datamining/lectures/06-clus3.pdf page7, чтобы понять мои вопросы. Чтобы понять эту проблему. Я использую python scipy, чтобы провести эксперимент. Ниже приведен мой код.

import scipy
import scipy.cluster.hierarchy as sch
import numpy as np
import matplotlib.pylab as plt

points=[[0.23,-0.16],[-0.53,0.46],[0.35,1.63],[0.74,0.54],[1.29,2.17]]
A=[]
for i in range(len(points)):
    a=chr(i+ord('A'))
    A.append(a)

plt.figure(2, figsize=(10, 4))
plt.clf()

plt.subplot(1, 2, 1)
disMat1 = sch.distance.pdist(points,'euclidean') 
print(disMat1)
Z1=sch.linkage(disMat1,method='centroid')
P1=sch.dendrogram(Z1,labels=A)
print(Z1)
plt.title("euclidean")

plt.subplot(1, 2, 2) 
disMat2 = sch.distance.pdist(points,'sqeuclidean')
print(disMat2)
Z2=sch.linkage(disMat2,method='centroid')
P2=sch.dendrogram(Z2,labels=A)
print(Z2)
plt.title("sqeuclidean")
plt.show()

В этом эксперименте у меня 5 баллов A (0,23, -0,16), B (-0,53,0,46), C (0,35,1,63), D ( 0.74,0.54), Е (1.29,2.17). Используйте евклидово расстояние и квеквлидово расстояние, чтобы построить две дендрограммы. Я думаю, что два дерева должны иметь два результата. Но они разные. Вы можете увидеть дендрограмму на картинке Две разные дендрограммы . У них другой порядок слияния. Для евклидова расстояния порядок слияния: AD, AD-B, C -E, ADB-CE. Для квадратичного расстояния порядок слияния: AD, C -E, AD-B, ADB-CE.

Я думаю, что использование евклидова расстояния не проблема. Я проверил расчет самостоятельно. Евклидово расстояние составляет 0,866, 1,050, 1,084, 1,775 для AD, AD-B, C -E, ADB-CE. Вы можете увидеть результаты из моего кода печати (Z1).

Я думаю, что использование квадратного расстояния имеет некоторые проблемы. Из моей распечатки кода (Z2), квеквлидово расстояние составляет 0,750, 1,175, 1,278, 4,134 для AD, C -E, AD-B, ADB-CE. Я проверил расчет самостоятельно. Я думаю, что квеквлидово расстояние AD-B составляет 1,103. Это меньше, чем квеквлидово расстояние C -E (1,175). Я не знаю, почему он сливается C -E первым.

Я надеюсь, что кто-нибудь может мне помочь. Эта проблема беспокоила меня много дней. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...