PyCaretのドキュメント解読: Classification setup()関数

PyCaret使いこなしのために公式ドキュメントの解読を決意。まず最初に取り掛かるのはClassificationのsetup()関数のドキュメント。最もよく利用する関数である上にオプションが途轍もなく多いので解読して機能の理解に繋げると共に今後見返す時のためにまとめておくことにしました。

```python:setup()関数のオプション概要
pycaret.classification.setup(
  data: Optional[Union[dict, list, tuple, ndarray, spmatrix, DataFrame]] = None,
  data_func: Optional[Callable[[], Union[dict, list, tuple, ndarray, spmatrix, DataFrame]]] = None,
  target: Union[int, str, list, tuple, ndarray, Series] = -1,
  index: Union[bool, int, str, list, tuple, ndarray, Series] = False,
  train_size: float = 0.7,
  test_data: Optional[Union[dict, list, tuple, ndarray, spmatrix, DataFrame]] = None, 
  ordinal_features: Optional[Dict[str, list]] = None,
  numeric_features: Optional[List[str]] = None,
  categorical_features: Optional[List[str]] = None,
  date_features: Optional[List[str]] = None,
  text_features: Optional[List[str]] = None,
  ignore_features: Optional[List[str]] = None,
  keep_features: Optional[List[str]] = None, preprocess: bool = True,
  create_date_columns: List[str] = ['day', 'month', 'year'],
  imputation_type: Optional[str] = 'simple',
  numeric_imputation: Union[int, float, str] = 'mean',
  categorical_imputation: str = 'mode',
  iterative_imputation_iters: int = 5,
  numeric_iterative_imputer: Union[str, Any] = 'lightgbm',
  categorical_iterative_imputer: Union[str, Any] = 'lightgbm',
  text_features_method: str = 'tf-idf',
  max_encoding_ohe: int = 25,
  encoding_method: Optional[Any] = None,
  rare_to_value: Optional[float] = None,
  rare_value: str = 'rare',
  polynomial_features: bool = False,
  polynomial_degree: int = 2,
  low_variance_threshold: Optional[float] = None,
  group_features: Optional[list] = None,
  group_names: Optional[Union[str, list]] = None,
  remove_multicollinearity: bool = False,
  multicollinearity_threshold: float = 0.9,
  bin_numeric_features: Optional[List[str]] = None,
  remove_outliers: bool = False,
  outliers_method: str = 'iforest',
  outliers_threshold: float = 0.05,
  fix_imbalance: bool = False,
  fix_imbalance_method: Union[str, Any] = 'SMOTE',
  transformation: bool = False,
  transformation_method: str = 'yeo-johnson',
  normalize: bool = False,
  normalize_method: str = 'zscore',
  pca: bool = False,
  pca_method: str = 'linear',
  pca_components: Optional[Union[int, float, str]] = None
  feature_selection: bool = False,
  feature_selection_method: str = 'classic',
  feature_selection_estimator: Union[str, Any] = 'lightgbm',
  n_features_to_select: Union[int, float] = 0.2,
  custom_pipeline: Optional[Any] = None,
  custom_pipeline_position: int = -1,
  data_split_shuffle: bool = True,
  data_split_stratify: Union[bool, List[str]] = True,
  fold_strategy: Union[str, Any] = 'stratifiedkfold',
  fold: int = 10,
  fold_shuffle: bool = False,
  fold_groups: Optional[Union[str, DataFrame]] = None,
  n_jobs: Optional[int] = -1,
  use_gpu: bool = False, html: bool = True,
  session_id: Optional[int] = None,
  system_log: Union[bool, str, Logger] = True,
  log_experiment: Union[bool, str, BaseLogger, List[Union[str, BaseLogger]]] = False, 
  experiment_name: Optional[str] = None,
  experiment_custom_tags: Optional[Dict[str, Any]] = None,
  log_plots: Union[bool, list] = False,
  log_profile: bool = False, log_data: bool = False,
  verbose: bool = True,
  memory: Union[bool, str, Memory] = True,
  profile: bool = False,
  profile_kwargs: Optional[Dict[str, Any]] = None
)
```
# 関数の説明
setup()関数はトレーニング環境の初期化及びデータ変換のパイプラインを構築します。setup()関数は一番最初に実行する関数です。必須パラメータは<font color="RED">data</font>及び<font color="RED">target</font>です。その他はオプションパラメータです。

# Returns
ClassificationExperimentオブジェクト

# 実行例

```python
from pycaret.datasets import get_data
from pycaret.classification import *

juice = get_data('juice')
exp_name = setup(data = juice,  target = 'Purchase')
```

# 必須パラメータ

## data
* 形式: データフレーム形式のデータ
* デフォルト値: None
* 説明: (n_samples, n_features)の形式で与えられます。n_samplesはデータセットのサンプル数、n_featuresは特徴量の数を表します。もしPandasのデータフレームで与えられなかった場合は、カラム名にデフォルト値を用いたデータフレームに変換した上で使用します。

## target
* 形式: int, str, シーケンス
* デフォルト値: -1
* 説明: intまたはstrで指定する場合は、データセット中の特定のカラムを示すインデックスまたはカラム名を指定します。もしデフォルト値を指定した場合は、データセットの最後のカラムを指定することになります。もしシーケンスで与える場合は、(n_samples,)形式で与えます。ターゲットとして指定できるのは2値(0/1)またはマルチクラスです。

# オプションパラメータ

## data_func
* 形式: Callable[[], DATAFRAME_LIKE]
* デフォルト値: None
* 説明: データセット(データフレーム形式のインプット)を生成します。データセットが巨大なデータの場合やcompare_models()関数の実行時に並列化して実行する必要が有る時などに便利です。ドライバーからワーカーに巨大なデータセットを一度に流し込むことを避けることができます。1点注意として、利用するためには、パラメータdataとdata_funcをセットで指定しなければなりません。

## index
* 形式: bool, int, str, シーケンス
* デフォルト値: False
* 説明: データセットとして与えられたデータフレームのインデックスを扱いを指定(指定値と効果は下表)

|指定値|効果|
|:---:|---|
|False|RangeIndexをリセット|
|True|データフレームに設定されているインデックスを維持|
|int|インデックスとして利用するカラムの位置番号として認識|
|str|インデックスとして利用するカラム名として認識|
|シーケンス|インデックスとして(n_samples,)形式の行列を利用|

## train_size
* 形式: float(0.0 ≦ train_size ≦ 1.0)
* デフォルト値: 0.7
* 説明: データセット中のデータのうちトレーニングに利用する割合をしている。1 - train_sizeの割合だけ学習後の評価時に利用される。

## test_data
* 形式: データフレーム形式またはNone
* デフォルト値: None
* 説明: Noneではない、つまり何らかのデータが与えられた場合、hold-outデータセット(テストデータ)として利用され、<font color="RED">train_sizeパラメータは無視されます</font>。dataとtest_dataのカラム数は一致しておかなければなりません。

## ordinal_features
* 形式: dict
* デフォルト値: None
* 説明: カテゴリ特徴をこのパラメータで与えられた順にエンコードします。例えば、'low', 'medium', 'high'を値として持ち、low < medium < highの関係からなるカテゴリ特徴をエンコードしたい場合、ordinal_features = {'column_name' : ['low', 'medium', 'high']}と与えると大小関係を維持してエンコードできる。

## numeric_fetures
* 形式: list, str
* デフォルト値: None
* 説明: もし推論されたデータタイプが間違っていた場合、numeric_featuresパラメータでデータタイプを定義できる。カラム名の文字列のリストが与えられた場合、そのカラムのデータは数値として扱われる。

## categorical_features
* 形式: 文字列のリスト
* デフォルト値: None
* 説明: もし推論されたデータタイプが間違っていた場合、categorical_featuresパラメータでデータタイプを指定できる。カラム名の文字列のリストが与えられた場合、そのカラムのデータはカテゴリデータとして扱われる。

## date_features
* 形式: 文字列のリスト
* デフォルト値: None
* 説明: もし推論されたデータタイプが間違っていた場合、date_featuresパラメータでデータタイプを上書きできる。カラム名の文字列のリストが与えられた場合、そのカラムのデータはDateTimeとして扱われる。

## text_features
* 形式: 文字列のリスト
* デフォルト値: None
* 説明: テキストコーパスを含むカラム名を指定する。もしNoneを指定した場合、テキスト特徴は選択されない。

## ignore_features
* 形式: 文字列のリスト
* デフォルト値: None
* 説明: 前処理及びモデルのトレーニング時に無視する特徴をignore_featuresパラメータで指定する。無視する特徴が格納されているカラム名の文字列をリスト形式で指定する。

## keep_features
* 形式: 文字列のリスト
* デフォルト値: None
* 説明: 前処理において常に特定の特徴を利用する時にkeep_featuresパラメータを使用する。言い換えれば、指定した特徴はいかなる特徴選択手法を利用しても決して除外されない。常に利用したい特徴が含まれているカラム名の文字列をリスト形式で与える。

## preprocess
* 形式: bool
* デフォルト値: True
* 説明: Falseを指定した場合、train_test_split及びcustom_pipelineパラメータで指定した変換処理を除くいかなら前処理も適用されません。モデリング準備が整ったデータ(欠損値が無く、日付データでは無く、カテゴリエンコーディングが施されているデータの意)ならば、Falseを設定します。

## create_date_columns
* 形式: 文字列のリスト
* デフォルト値: ["day", "month", "year"]
* 説明: データセットの特徴から"day", "month", "year"をそれぞれ格納したカラムを作成します。注意点として、無変動値から作成させた場合(例えば日付のみのデータしか含まれていない状態)は、このパラメータは無視されます。許容される値として、pandas.Series.dt形式のdatetimeアトリビュートが挙げられます。データセット中のデータでdatetimeとすべき特徴を最初の非NaN値から自動的に推論します。

## imputation_type
* 形式: str, None
* デフォルト値: 'simple'
* 説明: 欠損値に対する代入方法を指定します。'simple'または'interactive'が指摘できます。もしNoneを指定した場合は、欠損値に対していかなる処理も実行しません。

## numeric_imputation
* 形式: int, float, str
* デフォルト値: 'mean'
* 説明: 数値列中の欠損値を取り除く方法を指定します。<font color="RED">imputation_type = 'interactive'の場合は無視されます</font>。指定できる値は下表の通りです。

|値|効果|
|:---:|---|
|"drop"|欠損値を含む行を取り除きます|
|"mean"|欠損値を含む列の平均値で埋めます|
|"median"|欠損値を含む列の中央値で埋めます|
|"mode"|欠損値を含む列の最頻値で埋めます|
|"knn"|K-近傍法(k-NN)を用いて埋める値を決定します|
|int, float(特定の数値)|与えられた値で欠損値を埋めます|

## categorical_imputation
* 形式: str
* デフォルト値: 'mode'
* 説明: カテゴリ値を含むカラム内の欠損値に対する除去方法を指定します。<font color="RED">imputation_type = 'interactive'の場合は無視されます</font>。指定できる値は下表の通りです。

|値|効果|
|:---:|---|
|"drop"|欠損値を含む行を取り除きます|
|"mode"|欠損値を含む列の最頻値で埋めます|
|str|与えられた文字列で欠損値を埋めます|

## iterative_imputation
* 形式: int
* デフォルト値: 5
* 欠損値除去時のイテレーション数を指定します。<font color="RED">imputation_type = simpleを指定していた場合は無視されます</font>。

## numeric_iterative_imputer
* 形式: str, scikit-learnの予測器
* デフォルト値: 'lightgbm'
* 説明: 数値特徴量の欠損値に対する反復代入用リグレッサーを指定します。もしNoneを指定した場合、LGBClassifierを使用します。<font color="RED">imputation_type = simpleを指定していた場合は無視されます</font>。

## categorical_iterative_imputer
* 形式: str, scikit-learn予測器
* デフォルト値: 'lightgbm'
* 説明: カテゴリ特徴量の欠損値に対する反復代入用リグレッサーを指定します。もしNoneを指定した場合、LGBClassifierを使用します。<font color="RED">imputation_type = simpleを指定していた場合は無視されます</font>。

## text_features_method
* 形式: str
* デフォルト値: 'tf-idf'
* 説明: データセット中のテキスト特徴量をエンベディングするための処理方法を指定します。'bow'(Bag of Words - CountVectorizer)または'tf-idf'(TfidfVectorizer)を選択します。変換器のスパース行列出力は内部的には完全な行列に変換されることに注意してください。よって、膨大な量のテキストのエンベディングを実行した場合はメモリー不足が発生する場合が有ります。

## max_encoding_ohe
* 形式: int
* デフォルト値: 25
* 説明: max_encoding_ohe 以下の一意の値を持つカテゴリ列は、OneHotEncoding を使用してエンコードされます。それ以上の場合、encoding_method エスティメータが使用されます。2 つのクラスを持つ列は、常に序数でエンコードされることに注意してください。0未満の数値を設定した場合は、OneHotEncodingを使用します。

## encoding_method
* 形式: category-encoders estimator
* デフォルト値: None
* 説明: max_encoding_oheの値を超える数のユニーク値を含むカラムのエンコードを行うカテゴリエンコーダーを指定します。もしNoneが設定された場合、category_encoders.leave_one_out.LeaveOneOutEncoderが使用されます。

## rare_to_value
* 形式: float, None
* デフォルト値: None
* 説明: カテゴリ特徴量を含む列中のカテゴリ出現の割合の下限値を設定します。もしあるカテゴリの出現頻度ががrare_to_value * len(X)よりも小さい場合、rare_valueで設定した文字列に置き換えます。このパラメータはカラムをエンコードする前に出現頻度の少ないカテゴリ値を置き換えるために使用します。もしNoneを指定した場合、置き換えは実行されません。

## rare_value
* 形式: str
* デフォルト値: "rare"
* 説明: 出現頻度の少ないカテゴリ値をこのパラメータの設定値で置き換えます。<font color="RED">rare_to_value = Noneの場合は無視されます</font>。

## polynomial_features
* 形式: bool
* デフォルト値: False
* 説明: Trueに設定した場合、既存の数値特徴量を用いて新たな特徴量を生成します。

## polynomial_degree
* 形式: int
* デフォルト値: 2
* 説明: 多項式特徴量の次元を設定します。例えば、2次元で[a, b]という形式のサンプルに対する、2次元多項式特徴量は[1, a, b, a^2, ab, b^2]となる。polynomial_feature = Falseの場合無視される。

## low_variance_threshold
* 形式: float, None
* デフォルト値: None
* 説明: トレーニングデータセット中の特徴量のうち分散がこのパラメータで与えられた閾値を下回るものは削除します。もし、0を指定した場合、分散が0では無い全ての特徴量が維持されるます。言い換えるならば、全てのサンプルが等しい値を持つ特徴量は削除されます。もしNoneを指定した場合、この変換処理はスキップされます。

## group_features
* 形式: list, listのlist, None
* デフォルト値: None
* 説明: データセットに関連する特性を持つ特徴量が含まれている場合、それらの特徴量をそのグループの次の統計値に置き換えます。: 最小値、最大値、平均値、標準偏差、中央値、最頻値 このパラメータは特徴量名(の文字列)のリストまたは、いくつかの特徴量名のグループ(リスト)のリストとして与えます。

## group_names
* 形式: str, list, None
* デフォルト値: None
* 説明: 新しい特徴量に付ける名前を指定します。group_featuresで指定したグループの数とこのパラメータで指定するグループ名の数は一致させることが望ましいです。もし、Noneを指定した場合、新しい特徴量に対して、デフォルト値を使用して名付けが行われます。例えば、gropu_1, gropu_2, 等です。group_features = Noneの場合は、無視されます。

## remove_multicollinearity
* 形式: bool
* デフォルト値: False
* 説明: このパラメータをTrue に設定すると、相互相関が定義された閾値よりも高いフィーチャは削除されます。グループごとに、従属変数(y)との相関が最も高い特徴量を除く全ての特徴量を削除します。

## multicollinearity_threshold
* 形式: float
* デフォルト値: 0.9
* 説明: 相関する特徴量を特定するためのピアソン絶対相関の最小値。 デフォルト設定では、等しい列が削除されます。remove_multicollinearity = Falseの場合無視されます。

## bin_numeric_features
* 形式: 文字列のリスト
* デフォルト値: None
* 説明: 数値特徴量をカテゴリ特徴量に変換するために、bin_numeric_featuresパラメータを使用します。離散化したい(カテゴライズ化したい)特徴量が含まれるカラム名の(文字列の)リストを設定します。これは、スタージェスの公式を使用してクラスター数を決定し、KMeans アルゴリズムを適用することによって行われます。(ヒストグラムを作る時と同じ要領です)特徴量のオリジナルの値はクラスターラベルに置き換えられます。

## remove_outliers
* 形式: bool
* デフォルト値: False
* 説明: Trueを設定した場合、Isolation Forest(分離フォレスト)を用いて外れ値をトレーニングデータから除外します。

## outliers_method
* 形式: str
* デフォルト値: 'iforest'
* 説明: 外れ値を除外する方法を指定します。<font color="RED">remove_outliers = Falseの場合は、無視されます</font>。設定可能な値は下表の通りです。

|値|使われる手法|
|:---:|---|
|'iforest'|scikit-learnのIsolationForestを使用|
|'ee'|scikit-learnのEllipticEnvelopeを使用|
|'lof'|scikit-learnのLocalOutlierFactorを使用|

## outliers_threshold
* 形式: float
* デフォルト値: 0.05
* 説明: データセットから除外する外れ値の割合を指定します。<font color="RED">remove_outliers = Falseの場合は無視されます</font>。

## fix_imbalance
* 形式: bool
* デフォルト値: False
* 説明: トレーニングデータセットのターゲットクラスの分布が不均等な場合、このパラメーターを使用してバランスを取ることができます。Trueに設定した場合、マイノリティクラスの合成データポイントを作るために、デフォルトではSMOTE(Synthetic Minority Over-sampling Technique)が適用されます。


## fix_imbalance_method
* 形式: str, imblearn estimator
* デフォルト値: 'SMOTE'
* 説明: クラスを均等にするための予測器を指定します。imblearn estimator の名前またはそのような(予測器の)カスタムインスタンスから選択します。<font color="RED">fix_imbalance = Falseの場合、無視されます</font>。

## transformation
* 形式: bool
* デフォルト値: False
* 説明: Trueを設定した場合、ベキ変換を適用して、データをよりガウス分布に近いものに変換します。変換の形式はtransformation_methodパラメータで設定した値によって定義されます。

## transformation_method
* 形式: str
* デフォルト値: 'yeo-johnson'
* 説明: データの変換方法を定義します。デフォルトでは、'yeo-johnson'が変換方法として設定されています。その他に利用できる変換方法は、'quantile'です。<font color="RED">transformation = Falseの場合、無視されます</font>。

## normalize
* 形式: bool
* デフォルト値: False
* 説明: Trueを設定した場合、特徴量を与えられた(データの)範囲内で標準化します。標準化の方法は、normalize_methodパラメータにより定義されます。

## normalize_method
* 形式: str
* デフォルト値: 'zscore'
* 説明: 標準化のスケーリング方法を指定します。デフォルトでは、標準化手法として'zscore'が設定されています。標準的なzscoreは z = (x -u) / s で算出されます。<font color="RED">normalize = Falseの場合、無視されます</font>。その他に設定可能な手法は下表の通りです。

|手法名|詳細|
|---|---|
|'minmax'|0~1の範囲になるように、各特徴量を個別にスケーリングおよび変換します。|
|'maxabs'|各フィーチャの最大絶対値が 1.0 になるように、各フィーチャを個別にスケーリングおよび変換します。データをシフト/センタリングしないため、スパース性が破壊されません。|
|'robust'|四分位範囲に従って各機能をスケーリングおよび変換します。 データセットに外れ値が含まれている場合、ロバスト スケーラーを使用するとより良い結果が得られることがよくあります。|

## pca
* 形式: bool
* デフォルト値: False
* 説明: Trueを設定した場合、pca_methodパラメーターで定義されたメソッドを使用して、次元削減が適用され、データが低次元空間に射影されます。

## pca_method
* 形式: str
* デフォルト値: 'linear'
* 説明: PCAを適用する手法を指定します。設定可能な値は下表の通りです。

|手法名|詳細|
|---|---|
|linear|特異値分解(Singular Value Decomposition)を使用|
|kernel|RBFカーネルを用いた次元削減を使用|
|incremental|linearと似ているが、巨大なデータセットに対してより効率的な方法を使用|

## pca_components
* 形式: int, float, str, None
* デフォルト値: None
* 説明: それぞれの設定値の効果は下記の通りです。

|設定値|効果|
|---|---|
|None|全ての項目を維持|
|int|絶対値|
|float|分散がn_componentsで指定されたパーセンテージよりも大きくなる量<br>値は 0 から 1 の間である必要があります(pca_method = 'linear'の場合のみ)|
|mle|MinkaのMLEは次元の推測に使用されます(pca_method = 'linear'の場合のみ)|

## feature_selection
* 形式: bool
* デフォルト値: False
* 説明: Trueを設定した場合、特徴量のサブセットは、feature_selection_estimatorパラメータで指定した手法によって決定された特徴の重要度スコアに基づいて選択されます。

## feature_selection_method
* 形式: str
* デフォルト値: classic
* 説明: 特徴量選択アルゴリズムを設定します。選択出来るアルゴリズムは下表の通りです。

|アルゴリズム|詳細|
|---|---|
|univariate|scikit-learnのSelectBestを使用|
|classic|scikit-learnのSelectFromModeを使用|
|sequential|scikit-learnのSequentialFeatureSelectorを使用|

## feature_selection_estimator
* 形式: str, sklearn estimator
* デフォルト値: lightgbm
* 説明: 分類器が特徴量の重要度を決定するために使用します。データセットに適応後、予測器はfeature_importance_またはcoef_を参照することで、決定した重要度を参照できます。もし、Noneを設定した場合は、LGBClassifierを使用します。<font color="RED">feature_selection_method = univariateの場合は、無視されます</font>。

## n_features_to_select
* 形式: int, float
* デフォルト値: 0.2
* 説明: feature_selectionで設定した予測器を用いて選択する特徴量の最大数を設定します。もし1未満の場合、開始特徴量の割合を表します。このパラメーターは、抽出する特徴量のカウント時に ignore_featuresまたはkeep_featuresで設定した特徴量を(取得対象として)考慮しないことに注意してください。

## custom_pipeline
* 形式: list of (str, transformer), dict or Pipeline
* デフォルト値: None
* 説明: 追加のカスタムトランスフォーマーを設定します。 このパラメータが渡された場合、すべての組み込みトランスフォーマーの実行後、最後のパイプラインで適用されます。

## custom_pipeline_position
* 形式: int
* デフォルト値: -1
* 説明: 処理全体におけるカスタムパイプラインの実行位置を指定します。デフォルト値ではカスタムパイプラインは一番最後に追加されます。

## data_split_shuffle
* 形式: bool
* デフォルト値: True
* 説明: Falseに設定した場合、train_test_splitの処理を実行中に行のシャッフルが防止できます。

## data_split_stratify
* 形式: bool, list
* デフォルト値: True
* 説明: train_test_split処理中の階層化を制御します。 True に設定すると、target列によって階層化されます。 他の列で階層化するには、列名のリストを渡します。 <font color="RED">data_split_shuffleが Falseの場合は無視されます</font>。

## fold_strategy
* 形式: str, scikit-learn CV generator object
* デフォルト値: stratifiedkfold
* 説明: 交差検証戦略を選択します。設定可能な値は下表の通りです。

|CV generator|
|---|
|kfold|
|stratifiedkfold|
|groupkfold|
|timeseries|
|scikit-learnと互換性があるカスタムCV generator|

groupkfoldを使用する場合は、必ずfold_groupsパラメータの設定が必要です。以下の様に設定します。

```python
setup(fold_strategy="groupkfold", fold_groups="COLUMN_NAME")
```

## fold
* 形式: int
* デフォルト値: 10
* 説明: 交差検証で使用されるフォールドの数を設定します。<font color="RED">少なくとも2</font>である必要があります。これは、foldパラメーターを使用して関数レベルで上書きできるグローバル設定です。<font color="RED">fold_strategyがカスタムオブジェクトの場合は無視されます</font>。

## fold_shuffle
* 形式: bool
* デフォルト値: False
* 説明: 交差検証のシャッフルパラメータを制御します。 <font color="RED">fold_strategyがkfoldまたはstratifiedkfoldの場合</font>にのみ適用されます。<font color="RED">fold_strategyがカスタムオブジェクトの場合は無視されます</font>。

## fold_groups
* 形式: str, (n_samples,)の行列形式
* デフォルト値: None
* 説明: 相互検証にGroupKFoldを使用する場合のオプションのグループラベルを設定します。設定する値は(n_samples,)の行列形式であり、n_samplesはトレーニングデータセットの行数です。 文字列が渡されると、グループラベルを含むデータセット内の列名として解釈されます。

## n_jobs
* 形式: int
* デフォルト値: -1
* 説明: 並列処理に対応している関数を並列に実行する場合-1は全てのプロセッサを使用することを意味します。全ての関数をシングルプロセッサで実行する場合は、n_jobsをNoneに設定します。

## use_gpu
* 形式: bool, str
* デフォルト値: False
* 説明: Trueに設定すると、GPUをサポートするアルゴリズムでのトレーニングにGPUを使用し、使用できない場合は CPUにフォールバックします。 `force`に設定すると、GPU対応のアルゴリズムのみが使用され、使用できない場合に例外が発生します。 Falseの場合、すべてのアルゴリズムはCPUのみを使用してトレーニングされます。

GPU対応のアルゴリズムは下表の通りです。

|アルゴリズム|GPU対応化設定方法|
|---|---|
|Extreme Gradient Boosting|追加設定は不要|
|CatBoost Classifier|追加設定は不要<br>dataが50,000行を超えるサイズの場合のみGPUで実行|
|Light Gradient Boosting Machine|https://lightgbm.readthedocs.io/en/latest/GPU-Tutorial.html を参照|
|Logistic Regression, Ridge Classifier, Random Forest, K Neighbors Classifier, Support Vector Machine|cuMLバージョン0.15以上が必要<br>https://github.com/rapidsai/cuml を参照|

## html
* 形式: bool
* デフォルト値: True
* 説明: False に設定すると、ランタイムによるウィンドウの表示が防止されます。 環境がIPythonをサポートしていない場合は、これをFalseに設定する必要があります。 例えば、コマンドラインターミナル、Databricks Notebook、Spyder、およびその他の同様のIDEです。

## session_id
* 形式: int
* デフォルト値: None
* 説明: 実験のランダム性を制御します。 scikit-learn のrandom_stateに相当します。 Noneの場合、疑似乱数が生成されます。 これは、実験全体の再現性のために使用できます。

## log_experiment
* 形式: bool, str, BaseLogger, 文字列のリスト, BaseLoggerのリスト
* デフォルト値: False
* 説明: 使用する実験ロガーを決定するための、ロガーに対応するPyCaret BaseLoggerまたは文字列のリスト(mlflowまたはwandb)を設定します。True に設定すると、MLFlowのみが使用されます。

## system_log
* 形式: bool, str, logging.Logger
* デフォルト値: True
* 説明: システムログファイルを(logs.logとして)保存するのかを設定します。入力が文字列の場合は、それをログファイルへのパスとして使用します。 入力が既にロガーオブジェクトである場合は、代わりにそれを使用します。

## experiment_name
* 形式: str
* デフォルト値: None
* 説明: ログを取得するための実験名を設定します。<font color="RED">log_experiment = Falseの場合、無視されます</font>。

## experiment_custom_tags
* 形式: dict
* デフォルト値: None
* 説明: tag_nameのディクショナリ:文字列 -> 値:(文字列では無い場合は文字列化されます) mlflow.set_tags に渡され、実験用の新しいカスタム タグが追加されます。

## log_plots
* 形式: bool, list
* デフォルト値: False
* 説明: Trueに設定すると、特定のプロットがMLFlowサーバーに自動的に記録されます。ログに記録するプロットのタイプを変更するには、プロットIDを含むリストを渡します。詳細はplot_modelのドキュメントを参照してください。 

## log_profile
* 形式: bool
* デフォルト値: False
* 説明: Trueに設定すると、データプロファイルはMLflowサーバーにHTMLファイルとして記録されます。 <font color="RED">log_experiment = Falseの場合、無視されます</font>。

## log_data
* 形式: bool
* デフォルト値: False
* 説明: Trueに設定すると、データプロファイルはMLflowサーバーにCSVファイルとして記録されます。 <font color="RED">log_experiment = Falseの場合、無視されます</font>。

## verbose
* 形式: bool
* デフォルト値: True
* 説明: Falseに設定すると、情報グリッドは表示されません。

## memory
* 形式: str, bool, Memory
* デフォルト値: True
* 説明: パイプラインで適用されたトランスフォーマーをキャッシュするために使用されます。Falseの場合: キャッシュは実行されません。 Trueの場合: デフォルトの一時ディレクトリが使用されます。 strの場合: キャッシュディレクトリへのパスと見做します。

## profile
* 形式: bool
* デフォルト値: False
* 説明: Trueに設定すると、インタラクティブな EDAレポートが表示されます。

## profile_kwargs
* 形式: dict
* デフォルト値: {}(空のdict)
* 説明: EDAレポートの作成に使用されるProfileReport()関数に渡される引数のディクショナリです。<font color="RED">profile = Falseの場合は無視されます</font>。

# Reference
https://pycaret.readthedocs.io/en/latest/api/classification.html#pycaret.classification.setup