SAMPO/FABの動作と入出力

1. はじめに

本章では、SAMPO/FABの概要として動作と入出力について説明します。

2. SAMPO/FABの動作

SAMPO/FABは、分析プロセス設計情報であるSPDと実行設定であるSRCを入力すると、学習(または予測)を実行することができます。

学習または予測を実行した結果は、実行済プロセスとしてプロセスストアと呼ばれるリポジトリに格納します。

SAMPO/FABの実行方法概要

3. 入力

3.1. 分析対象データ

SAMPO/FABは、分析対象データとして行列形式のデータを扱います。 また、分析対象データはCSVファイル、PostgreSQLのテーブル、Pandas DataFrameから読み込むことができます。

下記のデータは、「あやめ」という花の種類の判別分析を行うための分析対象データです。 がく片(sepal)や花弁(petal)の幅や長さとあやめの種類という、5つの属性を持ちます。

データは、UCIのオープンデータである Iris Data Set (https://archive.ics.uci.edu/ml/datasets/iris) を利用しています。

[1]:
import pandas as pd

df = pd.read_csv('./data/iris.csv', na_values='?')

df.head()
[1]:
sepal length in cm sepal width in cm petal length in cm petal width in cm kind of iris
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa

3.2. ASD (属性スキーマ)

ASD(Attribute Schema Description) には、分析対象データの各属性の名前やデータ型を定義します。 データ型には、INTEGER (整数型)、REAL (実数型)、NOMINAL (カテゴリ型)、DATA (日付型) があります。

下記のように、scaleが示すデータ型にNOMINALが含まれている場合、domainにカテゴリ値の一覧も定義されます。

[2]:
from sampotools.api import gen_asd_from_pandas_df

asd = gen_asd_from_pandas_df(df)
pd.DataFrame(asd).T[['scale', 'domain']]
[2]:
scale domain
sepal length in cm REAL NaN
sepal width in cm REAL NaN
petal length in cm REAL NaN
petal width in cm REAL NaN
kind of iris NOMINAL [Iris-versicolor, Iris-virginica, Iris-setosa]

3.3. SPD (SAMPO Process Description)

SPDでは、属性生成や予測分析を行うコンポーネントを組み合わせて、学習(または予測)を行う分析プロセスを記述します。具体的には、使用するコンポーネントやコンポーネントのパラメータを記述します。
SPDの詳細と記述方法は、次章で説明します。

コンポーネントには、主に以下の3種類があります。 - 「データローダーコンポーネント」・・・ CSVファイルやPostgreSQLなどからデータを読み込む - 「属性生成コンポーネント(FD)」・・・ 属性データに特定の操作を行い、新たな属性を生成する - 「予測器コンポーネント」・・・ 学習によるモデル作成やモデルを用いた予測を行う

SPDの記述例:「データローダーコンポーネント」であるDataLoaderでデータを読み込み、「予測器コンポーネント」であるFABHMEBernGateLinearRgComponentで回帰分析を行う

dl -> rg

---

components:
    dl:
        component: DataLoader

    rg:
        component: FABHMEBernGateLinearRgComponent
        features: name != 'target'
        target: name == 'target'
        tree_depth: 3

補足: - コンポーネントには下記のような自動属性設計で使用するコンポーネントもあります。

- 「属性学習コンポーネント(FL)」・・・ 属性生成のパラメーターを自動推定して、属性生成を行う
- 「属性選択コンポーネント(FS)」・・・ 入力データから使用すべき属性を自動推定して選択する

3.4. SRC (SAMPO Run Configuration)

SRCでは、学習または予測の実行設定情報を記述します。 SRCには、learn_exampleのようなプロセス名とプロセスタイプを示すtypeを記述します。 またdata_sourcesには、pathに分析対象データの格納先を、attr_schemaにASDの格納先情報を記述します。
SRCの詳細と記述方法は、次章で説明します。

学習用SRCの記述例:CSVファイル形式の学習用データを使って学習を実行

learn_example:
    type: learn
    data_sources:
        dl:
            path: data/fabhmerg_learn.csv
            attr_schema: data/fabhmerg.asd

予測用SRCの記述例:CSVファイル形式の予測用データと実行済プロセス名learn_exampleのモデルを使って予測を実行

predict_example:
    type: predict
    data_sources:
        dl:
            path: data/fabhmerg_predict.csv
            attr_schema: data/fabhmerg.asd

    model_process: learn_example

予測を実行する場合は、上記のようにmodel_processで予測に使用したいモデルが含まれている実行済プロセス名を指定します。

4. 出力

4.1. 実行済プロセス

実行済プロセスとは、学習(または予測)の実行が完了した分析プロセスです。 実行済プロセスには、学習時はモデル、予測時は予測結果が格納されています。

ページトップへ