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

トレーナーとその引数のリスト。 トレーナーは、FastTreesFastForestFastLinearLogisticRegressionNeuralNetwork、または 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_dataTrue の場合、samp_rate の既定値は 1.0 (分割前にサンプリングを行わない) です。

split_data

重複しないパーティションで基本モデルをトレーニングするかどうかを指定する論理値。 既定値は、False です。 これは RxSpark コンピューティング コンテキストでのみ使用でき、それ以外の場合は無視されます。

combine_method

モデルを結合するために使用するメソッドを指定します。

  • "Median": 個々のモデル出力の中央値を計算する場合

  • "Average": 個々のモデル出力の平均値を計算する場合

  • "Vote": "(pos - neg)/モデルの総数" を計算する場合。"pos" は正の出力の数、"neg" は負の出力の数です。

max_calibration

調整に使用する例の最大数を指定します。 この引数は、二項分類以外のすべてのタスクでは無視されます。

ml_transforms

トレーニング前にデータに対して実行される MicrosoftML 変換の一覧を指定します。変換を実行しない場合は None を指定します。 データを追加で渡す必要がある変換 (featurize_textcategorical など) は指定できません。 これらの変換は、指定された 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 の間で、変数 incomelog の値が 10 を超える観測値のみを使用します。

行の選択は、データ変換を処理した後に実行されます (引数 transforms または transform_func を参照してください)。 すべての式と同様に、row_selection は、expression 関数を使用して関数呼び出しの外部で定義できます。

変換

サポートされていません。 変数変換の最初のラウンドを表すフォームの式。 すべての式と同様に、transforms (または row_selection) は、expression 関数を使用して関数呼び出しの外部で定義できます。

transform_objects

サポートされていません。 transformstransform_functionrow_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 オブジェクト。