Creo que usted puede hacer esto mediante el establecimiento de una diferencia entre las células de la matriz tal que diss((i,j),(k,l))
es grande para los no vecinos, y es la diferencia entre los valores de celda en (i,j),(k,l)
a los vecinos. Luego de alimentar a la diferencia de la matriz en cualquier algoritmo de clustering que toma una matriz - hclust
o pam
o de cualquiera de las varias en la Agrupación de la Vista de Tareas.
Entonces, por ejemplo, hclust
de proceder al empezar con cada célula de su propio grupo, y la fusión de las células más cercano en la diferencia de la matriz en el primer paso. Esto tendría que ser dos espacialmente las células adyacentes, y todos los subsiguientes pasos del algoritmo de clústeres sería sólo añadir que las celdas adyacentes a los clústeres.
Nota la diferencia entre la distancia espacial y la desemejanza. La agrupación trabaja en la diferencia de la matriz, que en una convencional de la agrupación es el problema (no espacial) "distancia" entre dos de los objetos que están tratando de clúster (por ejemplo, diferencia de edad, la diferencia de presión arterial, etc). Lo que estoy tratando de hacer aquí es la definición de que la desemejanza, de modo que para celdas no adyacentes, la distancia es grande, cualquiera que sea el valor espacial de la variable que está tratando de clúster.
Yo tenía un juego rápido para ver si podía conseguir esta pasando pero yo había hecho algo mal. Parte del problema es que si usted tiene un NxM cuadrícula, usted termina con una (NxM)x(NxM) de la matriz de disimilitud (o triángulo) y yo era probablemente conseguir una dimensión mal en algún lugar. Tal vez más tarde...