Prepara el fichero de datos de casas, una vez más . Pytorch no trae extensiones para SOM por defecto, así que utilizaremos una ligeramente tocada a partir de la desarrollada aquí En este comprimido tienes el fichero con esos añadidos para SOM y un fichero base para trastear.
Te presenta el gráfico del agrupamiento jerárquico que indica cómo son de distantes los grupos que hay que unir para llegar a una cierta cantidad de grupos. La idea es que en los agrupamientos naturales, las distancias son pequeñas; en cambio, en los agrupamientos forzados, las distancias son grandes. Hay que buscar ese punto aproximado en el cual pasamos de distancias grandes a pequeñas o de pequeñas a grandes, para que elijas el número de grupos.
Pero, haciendo pruebas, puedes llegar a otra conclusión respecto al número de grupos. Cambia el programa acordemente.
Si repites la ejecución hace otro muestreo. Comprueba si eso tiene importancia.
Te va mostrando el cambio medio en el movimiento de los centros según avanzan las iteraciones. En función de ello, decide si el numero de iteraciones es correcto o si conviene cambiarlo.
Después te va mostrando elementos aleatorios del conjunto de prueba y cuál es su representante. Con esto puedes tener también una indicación de qué tal es la representación.
Hay medidas que nos pueden indicar si el agrupamiento va bien. A continuación se comentan algunas, que tendrás que programar. Fíjate que todas ellas manejan las distancias entre los puntos y los centros de la red, que son sus pesos.
Para todo lo que son distancias, te vendrá bien algo como:
org=scipy.spatial.KDTree(pesos) dist,ind=org.query(datos,2)
y para correlaciones tienes scipy.stats.pearsonr(x, y)
, aunque también te puede valer un gráfico