kuroの覚え書き

96の個人的覚え書き

somocluで自己組織マッピング その2

というわけで定番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)

f:id:k-kuro:20220225131903p:plainf:id:k-kuro:20220225131914p:plainf:id:k-kuro:20220225131922p:plain
こんな感じ。