Python 用の autoai-lib の使用 (技術プレビュー) (Watson Machine Learning)

Python 用の autoai-lib ライブラリーには、IBM Watson Machine Learning AutoAI 実験との対話に役立つ関数のセットが含まれています。autoai-lib ライブラリーを使用して、パイプラインの作成で行われるデータ変換を検討して編集できます。

Python 用の autoai-lib のインストール

カスタム・ライブラリーのインストールに記載されている説明に従って、 autoai-lib をインストールします。

autoai-lib 関数

autoai-lib ライブラリーのインポート後に作成されるインスタンス化されたプロジェクト・オブジェクトは、以下の関数を公開します。

autoai_libs.transformers.exportable.NumpyColumnSelector()

numpy 配列の列のサブセットを選択します。

使用法:

autoai_libs.transformers.exportable.NumpyColumnSelector(columns=None)
オプション 説明
選択する列索引のリスト

 

autoai_libs.transformers.exportable.CompressStrings()

入力 numpy 配列 X のストリング列からスペースと特殊文字を削除します。

使用法:

autoai_libs.transformers.exportable.CompressStrings(compress_type='string', dtypes_list=None, misslist_list=None, missing_values_reference_list=None, activate_flag=True)
オプション 説明
compress_type ストリング圧縮のタイプ。ストリングからスペースを削除する場合は「string」、int ハッシュを作成する場合は「hash」を指定します。デフォルトは「string」です。ストリングを含む列があり、「cat_imp_strategy=’most_frequent’」の場合は、「hash」が使用されます。
dtypes_list 入力 numpy 配列 X の各列の型を示すストリングを含むリスト (ストリングは「char_str」、「int_str」、「float_str」、「float_num」、「float_int_num」、「int_num」、「boolean」、「Unknown」のいずれかです)。「なし」の場合、列の型が検出されます。デフォルトは「なし」です。
misslist_list 入力 numpy 配列 X の各列の欠損値のリストを含むリスト。「なし」の場合、各列の欠損値が検出されます。デフォルトは「なし」です。
missing_values_reference_list 入力 numpy 配列 X の欠落値の参照リスト
activate_flag このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。

 

autoai_libs.transformers.exportable.NumpyReplaceMissingValues()

numpy 配列とそれに対する欠損値の参照リストが指定されると、欠損値を特殊値 (通常は np.nan などの特殊欠損値) に置き換えます。

使用法:

autoai_libs.transformers.exportable.NumpyReplaceMissingValues(missing_values, filling_values=np.nan)
オプション 説明
missing_values 欠損値の参照リスト
filling_values 不明値に割り当てられる特殊値

 

autoai_libs.transformers.exportable.NumpyReplaceUnknownValues()

numpy 配列と各列の既知の値の参照リストが指定されると、参照リストに含まれない値を特殊値 (通常は np.nan) に置き換えます。これは通常、トレーニング・データ・セットの対応する列に表示されていない、テスト・データ・セット内の列のラベルを削除する際に使用されます。

使用法:

autoai_libs.transformers.exportable.NumpyReplaceUnknownValues(known_values_list=None, filling_values=None, missing_values_reference_list=None)
known_values_list 各列の既知の値のリストの参照リスト
filling_values 不明値に割り当てられる特殊値
missing_values_reference_list 欠損値の参照リスト

 

autoai_libs.transformers.exportable.boolean2float()

ブール値を表すストリングの 1-D numpy 配列を浮動小数点に変換し、欠損値を np.nan に置き換えます。また、配列のタイプを「object」から「float」に変更します。

使用法:

autoai_libs.transformers.exportable.boolean2float(activate_flag=True)
オプション 説明
activate_flag このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。

 

autoai_libs.transformers.exportable.CatImputer()

これは、分類インピューターのラッパーです。現在、内部では sklearn  SimpleImputer が使用されます。

使用法:

autoai_libs.transformers.exportable.CatImputer(strategy, missing_values, sklearn_version_family=global_sklearn_version_family, activate_flag=True)
オプション 説明
strategy ストリング、オプション、デフォルトは「mean」。欠損値の補完ストラテジー。
-mean: 各列に沿って平均値を使用して置き換えます。数値データにのみ使用できます。
- median: 各列に沿って中央値を使用して置き換えます。数値データにのみ使用できます。
- most_frequent: 各列に沿って最頻出値を使用して置き換えます。ストリングまたは数値データで使用されます。
- constant: fill_value で置換します。ストリングまたは数値データで使用できます。
missing_values 数値、ストリング、np.nan (デフォルト)、または「なし」。欠損値のプレースホルダー。出現するすべての missing_values が補完されます。
sklearn_version_family バージョン 019 および 020dev との後方互換性のための sklearn バージョンを示すストリング。現在は使用されていません。デフォルトは「なし」です。
activate_flag このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。

 

autoai_libs.transformers.exportable.CatEncoder()

これは、分類エンコーダーのラッパーです。エンコード・パラメーターが「ordinal」の場合、内部では現在、sklearn OrdinalEncoder が使用されます。エンコード・パラメーターが「onehot」または「onehot-dense」の場合、内部では現在、sklearn OneHotEncoder が使用されます。

使用法:

autoai_libs.transformers.exportable.CatEncoder(encoding, categories, dtype, handle_unknown, sklearn_version_family=global_sklearn_version_family, activate_flag=True)
オプション 説明
encoding ストリング、「onehot」、「onehot-dense」、または「ordinal」。使用するエンコードのタイプ (デフォルトは「ordinal」です。)
「onehot」: one-hot aka one-of-K スキーム (「ダミー」エンコードとも呼ばれます) を使用して特徴量をエンコードします。これにより、各カテゴリーのバイナリー列が作成され、疎行列が返されます。
「onehot-dense」: 「onehot」と同じですが、疎行列ではなく高密度配列を返します。
「ordinal」: 特徴量を序数 (整数) としてエンコードします。これにより、特徴量ごとに 1 つの整数列が返されます (0 から n_categories - 1)。
categories 「auto」または値のリスト/配列のリスト。以下に示す特徴量ごとのカテゴリー (固有値):
「auto」: トレーニング・データからカテゴリーを自動的に決定します。
list : categories[i] は、i 番目の列で予期されるカテゴリーを保持します。渡されるカテゴリーはソートする必要があり、ストリングと数値を混在させてはなりません。使用されるカテゴリーは、encoder.categories_ 属性にあります。
dtype 数値型、デフォルトは np.float64、出力の望ましいデータ・タイプ (dtype)。
handle_unknown 「error」(デフォルト) または「ignore」。変換中に不明なカテゴリー特徴量が存在する場合に、エラーを発生させるか無視するかを示します (デフォルトでは、エラーを発生させます)。このパラメーターが「ignore」に設定されていて、変換中に不明なカテゴリーが検出されると、この特徴量のワン・ホット・エンコードされた結果の列はすべてゼロになります。逆変換では、不明なカテゴリーは「なし」と示されます。不明なカテゴリーを無視することは、encoding='ordinal' ではサポートされていません。
sklearn_version_family バージョン 019 および 020dev との後方互換性のための sklearn バージョンを示すストリング。現在は使用されていません。デフォルトは「なし」です。
activate_flag このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。

 

autoai_libs.transformers.exportable.float32_transform()

float64 numpy 配列を float32 に変換します。

使用法:

autoai_libs.transformers.exportable.float32_transform(activate_flag=True)
オプション 説明
activate_flag このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。

 

autoai_libs.transformers.exportable.FloatStr2Float()

numpy 配列 X、およびその列の型を示す dtypes_list が指定されると、浮動小数点 (dtypes_list にある型「float_str」) を表すストリングの列を浮動小数点の列に置き換え、それらの欠落値を np.nan に置き換えます。

使用法:

autoai_libs.transformers.exportable.FloatStr2Float(dtypes_list, missing_values_reference_list=None, activate_flag=True)
オプション 説明
dtypes_list 入力 numpy 配列 X の各列の型を示すストリングを含むリスト (ストリングは「char_str」、「int_str」、「float_str」、「float_num」、「float_int_num」、「int_num」、「boolean」、「Unknown」のいずれかです)。
missing_values_reference_list 欠損値の参照リスト
activate_flag このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。

 

autoai_libs.transformers.exportable.NumImputer()

これは、数値インピューターのラッパーです。

使用法:

autoai_libs.transformers.exportable.NumImputer(strategy, missing_values, activate_flag=True)
オプション 説明
strategy num_imp_strategy : ストリング、オプション (デフォルトは「mean」)。以下の補完ストラテジー。
- 「mean」の場合は、軸に沿って平均値を使用して欠損値を置き換えます。
「median」の場合は、軸に沿って中央値を使用して欠損値を置き換えます。
- 「most_frequent」の場合は、軸に沿って最頻出値を使用して欠損値を置き換えます。
missing_values 整数または「NaN」、オプション (デフォルトは「NaN」)。 欠損値のプレースホルダー。出現するすべての missing_values が、補完されます。
- np.nan としてエンコードされた欠損値の場合は、ストリング値「NaN」を使用します。
- activate_flag: このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。

 

autoai_libs.transformers.exportable.OptStandardScaler()

これは、数値変数のスケーリングのラッパーです。現在、内部では sklearn StandardScaler が使用されます。

使用法:

autoai_libs.transformers.exportable.OptStandardScaler(use_scaler_flag=True, num_scaler_copy=True, num_scaler_with_mean=True, num_scaler_with_std=True)
オプション 説明
num_scaler_copy ブール値、オプション、デフォルトは「True」。「False」の場合は、コピーを避け、代わりにインプレース・スケーリングを試行してください。これが常に動作することは保証されていません。例えば、インプレースで、データが NumPy 配列でも scipy.sparse CSR 行列でもない場合、コピーが引き続き返されることがあります。
num_scaler_with_mean ブール値、デフォルトでは「True」。「True」の場合は、スケーリングする前にデータを中央揃えします。これは、疎行列で試行された場合は機能しません (例外が発生します)。疎行列を中央揃えすると、一般的なユース・ケースではメモリーに収容できないほど大規模になる可能性のある高密度行列が作成されるためです。
num_scaler_with_std ブール値、デフォルトでは「True」。「True」の場合、データを単位分散 (つまり、単位標準偏差) にスケーリングします。
use_scaler_flag ブール値、このトランスフォーマーがアクティブになることを示すフラグ。「False」の場合、transform(X) は未変更の入力 numpy 配列 X を出力します。デフォルトは「True」です。

 

autoai_libs.transformers.exportable.NumpyPermuteArray()

索引のリストに基づいて numpy 配列の列または行を再配置します。

使用法:

autoai_libs.transformers.exportable.NumpyPermuteArray(permutation_indices=None, axis=None)
オプション 説明
permutation_indices 再配置される列に基づく索引のリスト。
axis 列に沿った並べ替えは 0、行に沿った並べ替えは 1

 

特徴量の変換

これらのメソッドは、AutoAI 実装の詳細で説明されている特徴量の変換に適用されます。

 

autoai_libs.cognito.transforms.transform_utils.TA1(fun, name=None, datatypes=None, feat_constraints=None, tgraph=None, apply_all=True, col_names=None, col_dtypes=None)

単項ステートレス関数 (二乗、ログなど) の場合は、TA1 を使用します。

使用法:

autoai_libs.cognito.transforms.transform_utils.TA1(fun, name=None, datatypes=None, feat_constraints=None, tgraph=None, apply_all=True, col_names=None, col_dtypes=None)
オプション 説明
fun 関数ポインター
name このトランスフォーマーを他のトランスフォーマーから一意的に識別するストリング名
datatypes トランスフォーマー関数の有効な入力であるデータ・タイプのリスト (numeric、float、int など)
feat_constraints この変換の有効な入力と見なされるために、列で満たす必要があるすべての制約
tgraph tgraph オブジェクトは、呼び出し TGraph( ) オブジェクトである必要があります。これはオプションであるため、「なし」を渡すこともできますが、キャッシュ不足が原因で生じる非効率性の一部を検出できなくなります。
apply_all 「applyAll = True」のみ使用します。これは、トランスフォーマーが、指定された基準に一致するすべての特徴量 (または特徴量のセット) を列挙し、指定された関数を各特徴量に適用することを意味します。
col_names リスト内の特徴量列の名前
col_dtypes 特徴量列のデータ・タイプのリスト

 

autoai_libs.cognito.transforms.transform_utils.TA2()

合計、積などのバイナリー・ステートレス関数の場合は、TA2 を使用します。

使用法:

autoai_libs.cognito.transforms.transform_utils.TA2(fun, name, datatypes1, feat_constraints1, datatypes2, feat_constraints2, tgraph=None, apply_all=True, col_names=None, col_dtypes=None)
オプション 説明
fun 関数ポインター
name: このトランスフォーマーを他のトランスフォーマーから一意的に識別するストリング名  
datatypes1 トランスフォーマー関数の有効な入力 (最初のパラメーター) であるデータ・タイプのリスト (numeric、float、int など)
feat_constraints1 この変換の有効な入力 (最初のパラメーター) と見なされるために、列で満たす必要があるすべての制約
datatypes2 トランスフォーマー関数の有効な入力 (2 番目のパラメーター) であるデータ・タイプのリスト (numeric、float、int など)
feat_constraints2 この変換の有効な入力 (2 番目のパラメーター) と見なされるために、列で満たす必要があるすべての制約
tgraph tgraph オブジェクトは、呼び出し TGraph( ) オブジェクトである必要があります。これはオプションであるため、「なし」を渡すこともできますが、キャッシュ不足が原因で生じる非効率性の一部を検出できなくなります。
apply_all 「applyAll = True」のみ使用します。これは、トランスフォーマーが、指定された基準に一致するすべての特徴量 (または特徴量のセット) を列挙し、指定された関数を各特徴量に適用することを意味します。
col_names リスト内の特徴量列の名前
col_dtypes 特徴量列のデータ・タイプのリスト

 

autoai_libs.cognito.transforms.transform_utils.TB1()

例えば、頻繁なカウントなど、単項の状態ベースの変換 (fit/transform を使用) で使用します。

使用法:

autoai_libs.cognito.transforms.transform_utils.TB1(tans_class, name, datatypes, feat_constraints, tgraph=None, apply_all=True, col_names=None, col_dtypes=None)
オプション 説明
tans_class 変換関数の定義に従って、fit( ) および transform( ) を実装するクラス
name このトランスフォーマーを他のトランスフォーマーから一意的に識別するストリング名
datatypes トランスフォーマー関数の有効な入力であるデータ・タイプのリスト (numeric、float、int など)
feat_constraints この変換の有効な入力と見なされるために、列で満たす必要があるすべての制約
tgraph tgraph オブジェクトは、呼び出し TGraph( ) オブジェクトである必要があります。これはオプションであるため、「なし」を渡すこともできますが、キャッシュ不足が原因で生じる非効率性の一部を検出できなくなります。
apply_all 「applyAll = True」のみ使用します。これは、トランスフォーマーが、指定された基準に一致するすべての特徴量 (または特徴量のセット) を列挙し、指定された関数を各特徴量に適用することを意味します。
col_names リスト内の特徴量列の名前。
col_dtypes 特徴量列のデータ・タイプのリスト

 

autoai_libs.cognito.transforms.transform_utils.TB2()

例えば、グループ化基準など、バイナリーの状態ベースの変換 (fit/transform を使用) で使用します。

使用法:

autoai_libs.cognito.transforms.transform_utils.TB2(tans_class, name, datatypes1, feat_constraints1, datatypes2, feat_constraints2, tgraph=None, apply_all=True)
オプション 説明
tans_class 変換関数の定義に従って、fit( ) および transform( ) を実装するクラス
name このトランスフォーマーを他のトランスフォーマーから一意的に識別するストリング名
datatypes1 トランスフォーマー関数の有効な入力 (最初のパラメーター) であるデータ・タイプのリスト (numeric、float、int など)
feat_constraints1 この変換の有効な入力 (最初のパラメーター) と見なされるために、列で満たす必要があるすべての制約
datatypes2 トランスフォーマー関数の有効な入力 (2 番目のパラメーター) であるデータ・タイプのリスト (numeric、float、int など)
feat_constraints2 この変換の有効な入力 (2 番目のパラメーター) と見なされるために、列で満たす必要があるすべての制約
tgraph tgraph オブジェクトは、呼び出し TGraph( ) オブジェクトである必要があります。これはオプションであるため、「なし」を渡すこともできますが、キャッシュ不足が原因で生じる非効率性の一部を検出できなくなります。
apply_all 「applyAll = True」のみ使用します。これは、トランスフォーマーが、指定された基準に一致するすべての特徴量 (または特徴量のセット) を列挙し、指定された関数を各特徴量に適用することを意味します。

 

autoai_libs.cognito.transforms.transform_utils.TAM()

PCA など、データ・レベルで適用される変換の場合は、TAM を使用します。

使用法:

autoai_libs.cognito.transforms.transform_utils.TAM(tans_class, name, tgraph=None, apply_all=True, col_names=None, col_dtypes=None)
オプション 説明
tans_class 変換関数の定義に従って、fit( ) および transform( ) を実装するクラス
name このトランスフォーマーを他のトランスフォーマーから一意的に識別するストリング名
tgraph tgraph オブジェクトは、呼び出し TGraph( ) オブジェクトである必要があります。これはオプションであるため、「なし」を渡すこともできますが、キャッシュ不足が原因で生じる非効率性の一部を検出できなくなります。
apply_all 「applyAll = True」のみ使用します。これは、トランスフォーマーが、指定された基準に一致するすべての特徴量 (または特徴量のセット) を列挙し、指定された関数を各特徴量に適用することを意味します。
col_names リスト内の特徴量列の名前
col_dtypes 特徴量列のデータ・タイプのリスト

 

autoai_libs.cognito.transforms.transform_utils.TGen()

TGen は汎用ラッパーであり、ほとんどの関数に使用できます (ただし、最も効率的なラッパーではない可能性があります)。

使用法:

autoai_libs.cognito.transforms.transform_utils.TGen(fun, name, arg_count, datatypes_list, feat_constraints_list, tgraph=None, apply_all=True, col_names=None, col_dtypes=None)
オプション 説明
fun 関数ポインター
name このトランスフォーマーを他のトランスフォーマーから一意的に識別するストリング名
arg_count 関数に対する入力の数。この例では 1、バイナリーの場合は 2 などです。
datatypes_list 各パラメーターの受け入れ可能な入力データ・タイプに対応する arg_count リストのリスト。上記の例では、arg_count=1 であるため、外部リスト内にリストが 1 つあり、「numeric」という単一のタイプが含まれています。他にも、具体的に「int」と指定したり、「int64」とさらに具体的に指定したりするなど、複数のケースがあります。
feat_constraints_list 入力特徴量の選択に課す必要があるいくつかの制約に対応する arg_count リストのリスト
tgraph tgraph オブジェクトは、呼び出し TGraph( ) オブジェクトである必要があります。これはオプションであるため、「なし」を渡すこともできますが、キャッシュ不足が原因で生じる非効率性の一部を検出できなくなります。
apply_all 「applyAll = True」のみ使用します。これは、トランスフォーマーが、指定された基準に一致するすべての特徴量 (または特徴量のセット) を列挙し、指定された関数を各特徴量に適用することを意味します。
col_names リスト内の特徴量列の名前
col_dtypes 特徴量列のデータ・タイプのリスト

 

autoai_libs.cognito.transforms.transform_utils.FS1()

特徴量の選択。タイプ 1 (各特徴量とターゲットの間のペアワイズ相関を使用)。

使用法:

autoai_libs.cognito.transforms.transform_utils.FS1(cols_ids_must_keep, additional_col_count_to_keep, ptype)
オプション 説明
cols_ids_must_keep 特徴量の重要度に関係なく保持する必要がある列のシリアル番号
additional_col_count_to_keep 保持する必要がある列の数
ptype 分類または回帰

 

autoai_libs.cognito.transforms.transform_utils.FS2()

特徴量の選択、タイプ 2。

使用法:

autoai_libs.cognito.transforms.transform_utils.FS2(cols_ids_must_keep, additional_col_count_to_keep, ptype, eval_algo)
オプション 説明
cols_ids_must_keep 特徴量の重要度に関係なく保持する必要がある列のシリアル番号
additional_col_count_to_keep 保持する必要がある列の数
ptype 分類または回帰