Trazar los límites de la zona de clúster en Python con el paquete scikit

Aquí está mi ejemplo simple de tratar con la agrupación de datos en 3 atributos (x, y, valor). cada muestra representa su ubicación (x, y) y su variable de pertenencia.

Mi código fue publicado aquí:

x = np.arange(100,200,1)
y = np.arange(100,200,1)
value = np.random.random(100*100)

xx,yy = np.meshgrid(x,y)
xx = xx.reshape(100*100)
yy = yy.reshape(100*100)
j = np.dstack((xx,yy,value))[0,:,:]

fig = plt.figure(figsize =(12,4))
ax1 = plt.subplot(121)
xi,yi = np.meshgrid(x,y)
va    = value.reshape(100,100)
pc = plt.pcolormesh(xi,yi,va,cmap = plt.cm.Spectral)
plt.colorbar(pc)

ax2 = plt.subplot(122)
y_pred = KMeans(n_clusters=12, random_state=random_state).fit_predict(j)
vb = y_pred.reshape(100,100)
plt.pcolormesh(xi,yi,vb,cmap = plt.cm.Accent)

La figura se presenta aquí:

Cómo identificar los límites de cada zona de grupo y delinearlos para intensificar el efecto de visualización.

PD

Aquí hay una ilustración que trazo manualmente. Identificar los límites de agrupamiento y representarlos en líneas es lo que necesito.

PPS

Encontré una pregunta interesanteaquí tratando de dibujar los límites del área del clúster enR

Actualizar

Después de que probé, la subrutina sigue:

for i in range(n_cluster):
    plt.contour(vb ==i contours=1,colors=['b']) 

¡Se hace!

Respuestas a la pregunta(1)

Su respuesta a la pregunta