1. SAMPO/FABとsklearn-fabの主な差異¶
本章では、SAMPO/FABとsklearn-fabの主な差異を示します。
SAMPO/FABは、分析を行うための一連の機能(データの前処理、学習および予測の実行、モデルバリデーション、等)を独自に有しています。 一方、sklearn-fabは異種混合学習を利用するために必須のestimatorを除き、scikit-learnやpandasなどのOSSライブラリを使用することを前提とした構成になっています。
ユースケース実現方法の比較¶
一般的な分析のユースケースについて、SAMPO/FABとsklearn-fabにおける実現方法は以下になります。
ユースケース |
SAMPO/FAB |
sklearn-fab |
---|---|---|
データの前処理 |
|
OSSライブラリを使用 |
分析手順の設計 |
|
|
学習、予測の実行 |
SAMPO API
|
sklearn-fab API
|
モデルバリデーション |
SAMPO API
|
sklearn-fab API
OSSライブラリを使用 |
ベストモデル選択 |
SAMPO API
OSSライブラリを使用 |
OSSライブラリを使用 |
モデル永続化 |
SAMPO API
|
OSSライブラリを使用 |
SAMPO/FAB独自機能について¶
SAMPO/FABは独自機能をもっており、以下のように、sklearn-fabには存在しないものや概念が異なるものがあります。
ASD(Attribute Schema Description)
ASDは、分析対象データの各属性の名前やデータ型を記述したものです。
sklearn-fabでは、学習や予測で入力するデータ(numpy.ndarrayやpandas.DataFrame)のdtypeなどがASDの概念に近いものになります。そのため、sklearn-fabはASDを必要とせず、ASDの関連機能も存在しません。
SPD(SAMPO Process Description)
SPDは、属性生成や分析を行うコンポーネントを組み合わせ、学習(または予測)を行うプロセスを記述したものです。
sklearn.pipeline.Pipelineと同じ概念になります。
SRC(SAMPO Run Configuration)
SRCは、実行内容(学習、または予測)の定義、使用データや属性情報の選択など、実行設定情報を記述したものです。
sklearn-fabでは、使用データ選択が同じ概念になります。
process_store(プロセスストア)
process_storeは、モデル、使用データ、予測結果など、分析関連の様々な情報を一括管理するものです。
sklearn-fabでは、それらの情報を保持する仕組みは存在しないため、OSSライブラリ等を用いてユーザーが個別に管理する必要があります。
学習器の比較¶
SAMPO/FABとsklearn-fabが有する学習器を比較したのが以下になります。sklearn-fabでは、SAMPO/FABにおいて使用頻度が高い学習器が実装されています。
予測種別 |
門関数 |
予測式 |
SAMPO/FAB |
sklearn-fab |
---|---|---|---|---|
回帰 |
単変数 |
線形 |
FABHMEBernGateLinearRg Component |
SklearnFABBernGateLinearRegressor |
回帰 |
単変数 |
非線形 |
FABHMEBernGateBSplineRg Component |
なし |
回帰 |
多変数 |
線形 |
FABHMELogitGateLinearRg Component |
なし |
回帰 |
多変数 |
非線形 |
FABHMELogitGateBSplineRg Component |
なし |
分類(単クラス) |
単変数 |
線形 |
FABHMEBernGateLinearCl Component |
SklearnFABBernGateLinearClassifier |
分類(単クラス) |
単変数 |
非線形 |
FABHMEBernGateBSplineCl Component |
なし |
分類(単クラス) |
多変数 |
線形 |
FABHMELogitGateLinearCl Component |
なし |
分類(単クラス) |
多変数 |
非線形 |
FABHMELogitGateBSplineCl Component |
なし |
分類(多クラス) |
単変数 |
線形 |
FABHMEBernGateLinearMultiCl Component |
SklearnFABBernGateSoftmaxClassifier |
学習器に与えるパラメーターの比較¶
SAMPO/FABとsklearn-fabについて、学習器に与えるパラメーターの差異を比較したのが以下になります。差異として、名称が異なるパラメーターといずれかのみに存在するパラメーターがあります。 以下では、SAMPO/FABを基準として、sklearn-fabではパラメーターがどのように変更されたかを示します。
変更点 |
FABHMEBernGateLinearRg Component |
SklearnFABBernGateLinearRegressor |
備考 |
---|---|---|---|
名称および指定方法の変更 |
gate_features |
gate_feature_ids |
※1 |
名称および指定方法の変更 |
comp_features |
comp_feature_ids |
※1 |
名称および指定方法の変更 |
comp_mandatory_features |
comp_mandatory_feature_ids |
※1 |
名称および指定方法の変更 |
comp_positive_features |
comp_positive_feature_ids |
※1 |
名称および指定方法の変更 |
comp_negative_features |
comp_negative_feature_ids |
※1 |
削除 |
standardize_target |
※2 |
変更点 |
FABHMEBernGateLinearCl Component |
SklearnFABBernGateLinearClassifier |
備考 |
---|---|---|---|
名称および指定方法の変更 |
gate_features |
gate_feature_ids |
※1 |
名称および指定方法の変更 |
comp_features |
comp_feature_ids |
※1 |
名称および指定方法の変更 |
comp_mandatory_features |
comp_mandatory_feature_ids |
※1 |
名称および指定方法の変更 |
comp_positive_features |
comp_positive_feature_ids |
※1 |
名称および指定方法の変更 |
comp_negative_features |
comp_negative_feature_ids |
※1 |
削除 |
positive_label |
変更点 |
FABHMEBernGateLinearMultiCl Component |
SklearnFABBernGateSoftmaxClassifier |
備考 |
---|---|---|---|
名称および指定方法の変更 |
gate_features |
gate_feature_ids |
※1 |
名称および指定方法の変更 |
comp_features |
comp_feature_ids |
※1 |
名称および指定方法の変更 |
comp_mandatory_features |
comp_mandatory_feature_ids |
※1 |
- ※1: 学習器パラメーターは、それぞれ以下のように指定します。
SAMPO/FAB
SAMPO/FABのFAB componentに対し、SPDのOperatorsやMatching Functions等を使用して属性名を指定
sklearn-fab
sklearn-fabのestimatorに対し、学習実行時に属性のIDをリスト形式で指定
- ※2: standardize_target
sklearn-fabでは、ユーザーが必要に応じて、目的変数を標準化します。