AutoML②(PyCaretで前処理を行う)

PyCaretで前処理

PyCaretで前処理を行います。

setup関数を使うと、データを分析し、必要な前処理を自動的に行ってくれます。(2~5行目)

引数の意味は下記の通りです。

  • 第1引数
    データセット(ボストンの住宅価格データセット)。
  • 第2引数(target)
    目的変数。
  • 第3引数(normalize)
    標準化するかどうか。
  • 第4引数(session_id)
    PyCaretの実行時の識別子で、内部的には乱数のseedとして使用。
    指定しない場合はランダム。

[Google Colaboratory]

1
2
3
4
5
from pycaret.regression import *
ret = setup(boston_data,
target = "medv",
normalize = False,
session_id=0)

[実行結果]

setup関数を実行すると、PyCaretは各変数の型を推定して、ダイアログを表示してユーザに推定結果の確認と処理の続行を促します。

型の推定結果が正しければ、ダイアログのエディットボックスでEnterキーを押下すうことで処理が続行されます。

指定された型がおかしな場合は、quitと入力することで処理を中断できます。

型の変更

chas列は、Categoricalと認識されていますがNumbericとして扱うように変更してみます。

[Google Colaboratory]

1
2
3
4
5
6
from pycaret.regression import *
ret = setup(boston_data,
target = "medv",
session_id=0,
normalize = False,
numeric_features = ["chas"])

numeric_features“chas”を指定して実行しています。(6行目)

[実行結果]

“chas”の型がNumericに変更されているのが確認できます。

setupダイアログの前処理結果を確認

ダイアログのエディットボックス上でEnterキーを押下して処理を完了すると、setupダイアログに前処理の結果が表示されます。

[実行結果]

setupでは欠損値処理、データの分割(train_test_split)などを実施しており、完了すると結果が表示されます。

この表から、データサイズや説明変数の数や、各種前処理の指定有無などを確認することができます。

  • Missing Values
    元のデータに欠損値がある場合、Trueが表示されます。
    今回はFaseになっているので、欠損値がないことを示しています。
  • Transformed Train Set / Transformed Test Set
    デフォルトで訓練データが70%、テストデータが30%になっています。
    また、元のデータセット(Oriinal Data)の説明変数は14ですが、21に増えています。
    これは、PyCaretが前処理でカテゴリ変数に変換しているためです。
    さらにCategoria Featuresが1となっており、1つの説明変数がカテゴリ変数に変換されたことが分かります。

このようにPyCaretは加工を含む前処理を自動で実施してくれるのです。