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 |
分類または回帰 |