トポロジーの保存

トポロジーを画像で保存するチュートリアル

このチュートリアルでは、irisデータセットをトポロジーの画像として保存します。

  • どのようにトポロジーを画像で保存するか

Requirements

In [1]:
from sklearn.datasets import load_iris

from renom_tda.topology import Topology
from renom_tda.lens import PCA

データセット

次にデータをロードします。scikit-learnのload_iris関数を使います。

irisデータセットは4つの変数からなる150行のデータセットです。

In [2]:
iris = load_iris()

data = iris.data
target = iris.target

トポロジーインスタンスの作成

次にトポロジークラスのインスタンスを作成します。

In [3]:
topology = Topology()

データのロード

次にインスタンスにデータをロードします。
load_data関数を使って、インスタンスにデータを入力します。
In [4]:
topology.load_data(data)

ポイントクラウドの作成

次に、ポイントクラウドと呼ばれる低次元空間に投影したデータを作成します。

データを低次元空間に射影する際に2つのパラメータを設定します。

metricは、データ同士の距離をどのように測るかの指標となります。lensとは、ポイントクラウドに投影する軸になります。

このチュートリアルではMetricをNoneに、lensをPCAに設定します。これは、通常のPCAを用いた2次元への次元削減を意味します。

In [5]:
metric = None
lens = [PCA(components=[0, 1])]
topology.fit_transform(metric=metric, lens=lens)
projected by PCA.

位相空間へマッピング

次に、トポロジーを作成します。

map関数を使ってポイントクラウドのデータを位相空間にマッピングします。

このときに、3つのパラメータを設定します。

resolutionとは、ポイントクラウドの分割の数を表していて、ノードの数に関係します。

overlapとは、データの繋がりやすさを表します。

epsとmin_samplesはデータをクラスタリングする時に使います。

In [7]:
topology.map(resolution=15, overlap=0.5, eps=0.1, min_samples=3)
created 70 nodes.
created 192 edges.

トポロジーの色付け

次にcolor関数を使ってトポロジーの色を決定します。

このチュートリアルでは、irisデータセットのラベルを用いて色付けします。

color_methodは'mean'か'mode'を、color_typeは'rgb'か'gray'を指定します。

In [8]:
topology.color(target, color_method="mode", color_type="rgb")

トポロジーの保存

最後にトポロジーを保存します.

In [9]:
topology.save("test.png", fig_size=(10, 10), node_size=10, edge_width=2)

出力したファイルは以下のようになります.

test

出力ファイル.