microsoftml.rx_ensemble: 複数のモデルを 1 つに結合する
使用法
microsoftml.rx_ensemble(formula: str,
data: [<class 'revoscalepy.datasource.RxDataSource.RxDataSource'>,
<class 'pandas.core.frame.DataFrame'>, <class 'list'>],
trainers: typing.List[microsoftml.modules.base_learner.BaseLearner],
method: str = None, model_count: int = None,
random_seed: int = None, replace: bool = False,
samp_rate: float = None, combine_method: ['Average', 'Median',
'Vote'] = 'Median', max_calibration: int = 100000,
split_data: bool = False, ml_transforms: list = None,
ml_transform_vars: list = None, row_selection: str = None,
transforms: dict = None, transform_objects: dict = None,
transform_function: str = None,
transform_variables: list = None,
transform_packages: list = None,
transform_environment: dict = None, blocks_per_read: int = None,
report_progress: int = None, verbose: int = 1,
compute_context: revoscalepy.computecontext.RxComputeContext.RxComputeContext = None)
説明
モデルのアンサンブルをトレーニングします。
説明
rx_ensemble
は、1 つのモデルから得られるよりも優れた予測パフォーマンスを得るために、さまざまな種類のモデルをトレーニングする関数です。
引数
formula
二重引用符で囲まれた、有効な Python 構文のシンボリック式または数式。 シンボリック式は、"creditScore ~ yearsEmploy"
などのデータ ソース内のオブジェクトを参照する場合があります。
現在、相互作用項 (creditScore * yearsEmploy
) と式 (creditScore == 1
) はサポートされていません。
data
.xdf ファイルまたはデータ フレーム オブジェクトを指定するデータ ソース オブジェクトまたは文字列。 または、リスト内のデータ ソースのどれかを使用して各モデルをトレーニングする必要があることを示す、データ ソースのリストにすることができます。 この場合、データ リストの長さは model_count と同じ長さであることが必要です。
trainers
トレーナーとその引数のリスト。 トレーナーは、FastTrees
、FastForest
、FastLinear
、LogisticRegression
、NeuralNetwork
、または OneClassSvm
を使用して作成されます。
method
アンサンブルの種類を指定する文字列: 異常検出の場合は "anomaly"
、二項分類の場合は "binary"
、多クラス分類の場合は multiClass
、回帰の場合は "regression"
。
random_seed
ランダム シードを指定します。 既定値は None
です。
model_count
トレーニングするモデルの数を指定します。 この数がトレーナー リストの長さを超える場合、トレーナー リストは model_count
と一致するように複製されます。
replace
観測値のサンプリングを置換ありとなしのどちらで行う必要があるかを指定する論理値。 既定値は False
です。
samp_rate
トレーナーごとにサンプリングする観測値の割合を指定する正の値のスカラー。 既定値は、置換を使用したサンプリング (つまり replace=True
) の場合は 1.0
、置換なしのサンプリング (つまり replace=False
) の場合は 0.632
です。
split_data
が True
の場合、samp_rate
の既定値は 1.0
(分割前にサンプリングを行わない) です。
split_data
重複しないパーティションで基本モデルをトレーニングするかどうかを指定する論理値。
既定値は、False
です。 これは RxSpark
コンピューティング コンテキストでのみ使用でき、それ以外の場合は無視されます。
combine_method
モデルを結合するために使用するメソッドを指定します。
"Median"
: 個々のモデル出力の中央値を計算する場合"Average"
: 個々のモデル出力の平均値を計算する場合"Vote"
: "(pos - neg)/モデルの総数" を計算する場合。"pos" は正の出力の数、"neg" は負の出力の数です。
max_calibration
調整に使用する例の最大数を指定します。 この引数は、二項分類以外のすべてのタスクでは無視されます。
ml_transforms
トレーニング前にデータに対して実行される MicrosoftML 変換の一覧を指定します。変換を実行しない場合は None を指定します。 データを追加で渡す必要がある変換 (featurize_text
、categorical
など) は指定できません。
これらの変換は、指定された R 変換の後に実行されます。
既定値は None です。
ml_transform_vars
ml_transforms で使用する変数名の文字ベクトルを指定します。変数を使用しない場合は None を指定します。 既定値は None です。
row_selection
サポートされていません。 モデルで使用されるデータ セットの行 (観測値) を、データ セットの論理変数の名前 (引用符で囲む) またはデータ セット内の変数を使用する論理式で指定します。 例:
rowSelection = "old"
の場合は、変数old
の値がTrue
である観測値のみを使用します。rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
の場合は、変数age
の値が 20 から 65 の間で、変数income
のlog
の値が 10 を超える観測値のみを使用します。
行の選択は、データ変換を処理した後に実行されます (引数 transforms
または transform_func
を参照してください)。 すべての式と同様に、row_selection
は、expression
関数を使用して関数呼び出しの外部で定義できます。
変換
サポートされていません。 変数変換の最初のラウンドを表すフォームの式。 すべての式と同様に、transforms
(または row_selection
) は、expression
関数を使用して関数呼び出しの外部で定義できます。
transform_objects
サポートされていません。
transforms
、transform_function
、row_selection
で参照できるオブジェクトを含む名前付きリスト。
transform_function
変数変換関数。
transform_variables
変換関数に必要な入力データ セット変数の文字ベクトル。
transform_packages
サポートされていません。 変数変換関数で使用するために事前に読み込まれる追加の Python パッケージ (RxOptions.get_option("transform_packages")
で指定されているもの以外) を指定する文字ベクトル。
たとえば、transforms
および transform_function
引数を使用して revoscalepy 関数で明示的に定義されているものや、formula
または row_selection
引数を使用して暗黙的に定義されているものなどです。 引数 transform_packages
には None を指定することもできます。これは、RxOptions.get_option("transform_packages")
以外のパッケージを事前に読み込まないことを示します。
transform_environment
サポートされていません。 内部で開発され、変数データ変換に使用される、すべての環境の親として機能するユーザー定義環境。
transform_environment = None
の場合は、revoscalepy.baseenv
を親とする新しい "ハッシュ" 環境が代わりに使用されます。
blocks_per_read
データ ソースから読み取るデータのチャンクごとに、読み取るブロックの数を指定します。
report_progress
行処理の進行状況に関するレポートのレベルを指定する整数値。
0
: 進行状況はレポートされません。1
: 処理された行の数が出力され、更新されます。2
: 処理された行とタイミングがレポートされます。3
: 処理された行とすべてのタイミングがレポートされます。
verbose
必要な出力の量を指定する整数値。
0
の場合、計算中に詳細は出力されません。
1
から 4
の整数値を指定すると、情報の量が増えます。
compute_context
有効な revoscalepy.RxComputeContext
で指定された、計算が実行されるコンテキストを設定します。
現在はローカルと revoscalepy.RxSpark コンピューティング コンテキストがサポートされています。
revoscalepy.RxSpark が指定された場合、モデルのトレーニングは分散された方法で行われ、アンサンブルはローカルで行われます。 コンピューティング コンテキストは待機なしにできないことに注意してください。
戻り値
トレーニング済みアンサンブル モデルを持つ rx_ensemble
オブジェクト。