O @gung está absolutamente correto, sugerindo o dimensionamento multidimensional (MDS) como uma ferramenta preliminar para criar points X dimensions
dados fora da matriz de distância. Vou adicionar apenas alguns traços. O agrupamento K-significa implica distâncias euclidianas . O MDS fornecerá coordenadas de pontos em dimensões, garantindo distâncias euclidianas. Você deve usar o MDS métrico e solicitar o número de dimensões o maior possível, pois seu objetivo é minimizar o erro de reconfigurar os dados, não mapeá-los em 2D ou 3D.
E se você não tiver o software MDS em mãos, mas tiver algumas funções de matriz, como decomposição de autovalor ou decomposição de valor singular? Em seguida, você mesmo pode executar o MDS métrico simples - Torgerson MDS, também conhecido como Análise de Coordenadas Principais (PCoA). Isso equivale a uma análise um pouco "distorcida" dos componentes principais. Não vou descrevê-lo aqui, embora seja bastante simples. Você pode ler sobre isso em muitos lugares, por exemplo, aqui .
Finalmente, é possível programar "meios K para entrada da matriz à distância" diretamente - sem chamar ou escrever funções executando PCoA ou outro MDS métrico. Sabemos que (a) a soma dos desvios quadrados do centróide é igual à soma das distâncias euclidianas quadradas aos pares, divididas pelo número de pontos; e (b) saber calcular distâncias entre centróides de cluster fora da matriz de distância ; (c) e sabemos ainda como as soma dos quadrados estão inter-relacionadas em K-médias. Tudo isso faz da redação do algoritmo que você deseja uma tarefa direta e não complexa. Deve-se lembrar, porém, que K-means é apenas para distâncias euclidianas / espaço euclidiano. Use K-medoids ou outros métodos para distâncias não euclidianas.
Uma pergunta semelhante .