Training step#
以下の fit() 関数がトレーニングを実行する部分である。
%%time
%%memit
from autogluon.tabular import TabularPredictor as task
predictor = task(label=label, problem_type=problem_type, eval_metric=eval_metric, path=save_path).fit(
train_data,
time_limit=time_limit,
presets=presets,
refit_full=refit_full,
excluded_model_types=excluded_model_types,
hyperparameters=hyperparameters,
hyperparameter_tune_kwargs=hyperparameter_tune_kwargs,
num_stack_levels=num_stack_levels, # auto_stack=True,
num_bag_folds=num_bag_folds,
num_bag_sets=num_bag_sets,
_feature_generator_kwargs=feature_generator_kwargs,
verbosity=2 # 0~4 (default: 2) Higher levels correspond to more detailed print statements
)
fit() の引数に presets
があるが、ここは本来、精度優先度を以下の5段階から選んで指定するものである(上から順に精度を優先)。
best_quality
best_quality_with_high_quality_refit
high_quality_fast_inference_only_refit
medium_quality_faster_train
optimize_for_deployment
しかし、本 Notebook はこの preset
は固定値となっていることに注意しよう。
Note
本 Notebook では presets
は good_quality_faster_inference_only_refit
で固定となっている。(ユーザー側で変更できない)
特徴量エンジニアリング#
INFO: Using Feature Generators to preprocess the data ...
INFO: Fitting AutoMLPipelineFeatureGenerator...
INFO: Available Memory: 516064.56 MB
INFO: Train Data (Original) Memory Usage: 5.43 MB (0.0% of available memory)
INFO: Inferring data type of each feature based on column values. Set feature_metadata_in to manually specify special dtypes of the features.
INFO: Stage 1 Generators:
INFO: Fitting AsTypeFeatureGenerator...
INFO: Note: Converting 6 features to boolean dtype as they only contain 2 unique values.
INFO: Stage 2 Generators:
INFO: Fitting FillNaFeatureGenerator...
INFO: Stage 3 Generators:
INFO: Fitting IdentityFeatureGenerator...
INFO: Fitting CategoryFeatureGenerator...
INFO: Fitting CategoryMemoryMinimizeFeatureGenerator...
INFO: Stage 4 Generators:
INFO: Fitting DropUniqueFeatureGenerator...
AsTypeFeatureGenerator#
学習に適した型への変換を行う。特に初期に object 型とみなされているカラムに categorical などの明確な型に変換される。
FillNaFeatureGenerator#
データ内の欠損値を NaN や np.nan で埋める。
IdentityFeatureGenerator#
データを変更せずに単に次(CategoryMemoryMinimizeFeatureGenerator
)に渡すだけのもの。
CategoryMemoryMinimizeFeatureGenerator#
categorical の値を単調に増加する int 値に変換することで、categorical の特徴量のメモリ使用量を最小限に抑える。
DropUniqueFeatureGenerator#
一意な値が1つしかないか、繰り返しの値がほとんどない(max_unique_ratio に基づく)、categorical または object タイプの特徴量をドロップする。
排除された特徴量の情報#
INFO: Unused Original Features (Count: 1): ['customerid']
INFO: These features were not used to generate any of the output features. Add a feature generator compatible with these features to utilize them.
INFO: Features can also be unused if they carry very little information, such as being categorical but having almost entirely unique values or being duplicates of other features.
INFO: These features do not need to be present at inference time.
INFO: ('object', []) : 1 | ['customerid']
元の型と、特徴量エンジニアリングによって特定した型の情報を表示#
INFO: Types of features in original data (raw dtype, special dtypes):
INFO: ('float', []) : 1 | ['monthlycharges']
INFO: ('int', []) : 2 | ['seniorcitizen', 'tenure']
INFO: ('object', []) : 16 | ['gender', 'partner', 'dependents', 'phoneservice', 'multiplelines', ...]
INFO: Types of features in processed data (raw dtype, special dtypes):
INFO: ('category', []) : 11 | ['multiplelines', 'internetservice', 'onlinesecurity', 'onlinebackup', 'deviceprotection', ...]
INFO: ('float', []) : 1 | ['monthlycharges']
INFO: ('int', []) : 1 | ['tenure']
INFO: ('int', ['bool']) : 6 | ['gender', 'seniorcitizen', 'partner', 'dependents', 'phoneservice', ...]
INFO: 0.2s = Fit runtime
INFO: 19 features in original data used to generate 19 features in processed data.
INFO: Train Data (Processed) Memory Usage: 0.17 MB (0.0% of available memory)
INFO: Data preprocessing and feature engineering runtime = 0.28s ...
Loading data from TD で類推された型(Types of features in original data)に対して、今回の処理で特定された型 (Types of features in processed data) の情報を表示。object 型となっていたものが適切な型に変換されていることがわかる。