microsoftml.rx_ensemble:将模型合并为一个模型

使用情况

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 函数用于定型多种不同类型的模型,以获得比单个模型更好的预测性能。

参数

公式

有效 Python 语法中的符号或数学公式,用双引号引起来。 符号公式可能引用数据源中的对象,例如 "creditScore ~ yearsEmploy"。 目前不支持交叉条件 (creditScore * yearsEmploy) 和表达式creditScore == 1

data

指定 .xdf 文件或数据帧对象的数据源对象或字符串。 此外,它还可以是一个数据源列表,指示应使用列表中的一个数据源训练每个模型。 在这种情况下,数据列表的长度必须等于 model_count。

训练程序

训练程序列表及其参数。 训练程序是使用 FastTreesFastForestFastLinearLogisticRegressionNeuralNetworkOneClassSvm 创建的。

method

一个指定系综类型的字符串:"anomaly" 表示异常情况检测、"binary" 表示二元分类、multiClass 表示多类分类,"regression" 表示回归。

random_seed

指定随机种子。 默认值是 None

model_count

指定要训练的模型数。 如果此数目大于训练程序列表的长度,则复制训练程序列表以匹配 model_count

replace

一个逻辑值,指定是否应使用替换完成观察值的采样。 默认值是 False

samp_rate

正值的标量,指定每个训练程序要采样的观察值百分比。 默认值为 1.0,表示使用替换进行采样(即 replace=True),0.632 表示不使用替换进行采样(即 replace=False)。 如果 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" 将仅使用变量值 oldTrue 的观察值。

  • rowSelection = (age > 20) & (age < 65) & (log(income) > 10) 仅使用 age 变量值介于 20 和 65 之间且 income 变量的 log 值大于 10 的观察值。

在处理任何数据转换之后执行行选择(请参阅参数 transformstransform_func)。 与所有表达式一样,row_selection 可以使用 expression 函数在函数调用之外定义。

转换

不受支持。 表示第一轮变量转换的窗体表达式。 与所有表达式一样,可以使用 expression 函数在函数调用之外定义 transforms(或 row_selection)。

transform_objects

不受支持。 一个命名列表,其中包含可由 transformstransform_functionrow_selection 引用的对象。

transform_function

变量转换函数。

transform_variables

转换函数所需的输入数据集变量的字符向量。

transform_packages

不受支持。 一个字符向量,用于指定将提供和预加载以在变量转换函数中使用的其他 Python 包(除 RxOptions.get_option("transform_packages") 中指定的包以外)。 例如,在 revoscalepy 函数中通过其 transformstransform_function 参数显式定义的那些包,或者通过其 formularow_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,则计算期间不会打印详细输出。 从 14 的整数值表示提供的信息量逐步增加。

compute_context

设置执行计算的上下文,使用有效的 revoscalepy.RxComputeContext 指定。 目前支持本地和 revoscalepy.RxSpark 计算上下文。 当指定 revoscalepy.RxSpark 时,模型的训练是以分布式方式完成的,而系综生成是在本地完成的。 请注意,计算上下文不能处于非等待状态。

返回

具有已训练的系综模型的 rx_ensemble 对象。