Могу ли я создать дендрограмму в python, используя уже рассчитанные расстояния Махаланобиса, а не евклидовы расстояния? - PullRequest
0 голосов
/ 14 февраля 2019

Я создал ковариационную таблицу расстояний Махаланобиса для своих данных, и мне нужен способ отображения, который не является гигантской таблицей.Я хотел создать иерархическую кластерную дендрограмму, но scipy.cluster.hierarchy.dendrogram автоматически вычисляет евклидовы расстояния, что означает, что евклидовы расстояния вычисляются из моих расстояний Махаланобиса.Есть ли способ, которым я могу кодировать дендрограмму, используя таблицу Махаланобиса, которую я уже создал?Нужно ли мне масштабировать код до конца, чтобы создать базовую дендрограмму, требующую более двух строк кода?

import matplotlib.pyplot as plt
import pandas as pd
import scipy.cluster.hierarchy as shc

# This is the table of Mahalanobis distances that I've already created
# that I'm importing

distances = pd.read_csv('species_all_dist.csv')

# I get rid of the headings column
# so I'm working with just my numbers

df = distances.iloc[:,1:]


# Creating the dendrogram works
# but the linkage automatically calculates Euclidean distances

dend = shc.dendrogram(shc.linkage(df),
                      orientation='left', leaf_font_size=8, labels=headings)
...