というわけで定番Irisでやってみよう。
import numpy as np import matplotlib.pyplot as plt import somoclu import pandas as pd %matplotlib inline from sklearn.datasets import load_iris iris = load_iris() X = iris.data Y = iris.target n_rows, n_columns = 50, 50 som = somoclu.Somoclu(n_columns, n_rows, initialization="pca",gridtype="rectangular",maptype="planar",neighborhood="bubble") som.train(data=X, epochs=10) som.view_component_planes(figsize =(5,5)) som.view_umatrix(figsize =(5,5), bestmatches=True, labels=Y) from sklearn.cluster import KMeans som.cluster(KMeans(n_clusters=3)) som.clusters colors = ['r', 'b', 'g'] a = list(map(lambda x:colors[som.clusters[som.bmus[x][1],som.bmus[x][0]]],range(len(som.bmus)))) som.view_umatrix(figsize =(5,5),bestmatches=True, labels=Y,colormap ='Greys', bestmatchcolors=a)
こんな感じ。